Frage von Crysali, 45

Informatik - Informationen gezielt lesen?

Wie kann ich das folgende Beispiel gezielt lesen und Informationen gewinnen ?

Bone{ 
     100,
     101,
     102
}

Gibt es Funktionen, die ich benutzen kann, um den Inhalt zwischen zwei {} abzurufen und gezielt Informationen zwischen zwei Kommata ( ", 10101,") ?

Muss ich da mit Substring rumtinkern oder gibt es da einfachere Wege (mit kurzem Beispiel, wenn möglich, bitte) ? Ziel ist es, die verschiedenen integer einzeln abzurufen.

Antwort
von tDoni, 41

Ich weiß nicht genau, was du genau vorhast, aber schau dir mal das JSON Vormat an. (https://de.wikipedia.org/wiki/JavaScript_Object_Notation) Dafür gibt es Parser. Wenn du den Input beeinflussen kannst, ist das viellicht das bessere für dich.

Ansonsten wirst du wahrscheinlich nicht an Stringmanipulation vorbeikommen und dir selbst einen Parser schreiben müssen.

Kommentar von Crysali ,

Ich glaube, genau das meine ich, danke. Im Prinzip versuche ich eine Möglichkeit zu finden, wie ich intelligent von Komma zu Komma springen kann, innerhalb eines Bereiches von {(...)}. Wenn das ein Parser macht, dann perfekt.

Kommentar von CTape ,

das ist kein json format..

Kommentar von PWolff ,

Stimmt; man müsste vorher "{" durch "[" und "}" durch "]" ersetzen.

Kommentar von tDoni ,

Wie "Gruffalo" vorgeschlagen hat, wären RegEx natürlich auch eine gute Lösung:

([\d])\w+

Die kannst du hier ausprobieren:

http://regexr.com/
Antwort
von priesterlein, 31

Was sind das für Daten? Liegen sie innerhalb eines Programms oder in einer externen Datei? Das muss man wissen, um mit ihnen umgehen zu können.

Kommentar von Crysali ,

Innerhalb einer Datei, die sich mit dem Notepad/Editor öffnen lässt und dann eine ganze Reihe solcher Sachen ausspuckt, immer im selben Schema ( {(...),(...),(...)} )

Kommentar von priesterlein ,

Wenn das Schema immer gleich ist, kannst du die Datei direkt als Struktur einlesen oder eben, wie schon von Anderen geschrieben, per regulärem Ausdruck auswerten.

Antwort
von Gruffalo, 45

Welche Programmiersprache benutzt du? Aber generell kann man mit regulären Ausdrücken das Problem sehr leicht lösen.

Kommentar von Crysali ,

Ich weiß nicht, ob das Beispiel ( ist valid) überhaupt eine gängige Programmiersprache ist. Ist irgendein uraltes 3D-Model.

Das mit den gängigen Ausdrücken würde bedeuten, ich würde beispielsweise nach dem string "Bone" suchen und dann Zeile für Zeile springen und den gewünschten Part filtern ?

Kommentar von Gruffalo ,

Aber du musst doch ein Programm schreiben um die Daten zu durchsuchen. Was benutzt du denn dafür?

Kommentar von Crysali ,

Diese Datei lässt sich mit dem Editor/Notepad öffnen, ich dachte, das würde reichen.

Kommentar von Gruffalo ,

Und wenn du die Daten hast, was soll dann damit passieren?

Kommentar von PWolff ,

Das reicht in jedem Fall, um den Dateiinhalt mit einem Textparser einlesen zu können. (Beachte aber, dass Notepad mittlerweile UTF-8 beherrscht, aber erst bei "Speichern unter..." anzeigt, wenn es Kodierungsprobleme geben könnte - wenn überhaupt.

Antwort
von BeerRush, 23

Was du brauchst ist ein PARSER. Parsergeneratoren gibt es genug. Dann musst du nur deine Sprache in BCNF bringen.

Keine passende Antwort gefunden?

Fragen Sie die Community