Seite 1 von 2
Mehrere angaben in einer TXT
Verfasst: 27.04.2005 12:49
von Green Snake
hallo
wie kan ich mehrere zeichen bzw strings und/oder zahlen aus der gleichen txt auslesen?
also zb:
jetzt will/möchte ich, das die variable A = dem string der linie 1 ist,
B = der string der linie 2
C = linie 3
usw usw
wie kann ich das machen?
habe mal ein programm von diesem vorum angeschaut. (bei feedback - anwendungen) war das glaube ich, dort hatte der programierer auch so etwas angewendet.
ps. die zahlen in den [] sind nicht nötig, jedoch würde es durch sie übersichtlicher, gibt es auch eine möglichkeit, das pb nur den text in den "" anschaut?
danke im voraus
Snake
Verfasst: 27.04.2005 13:25
von Laurin
Mit
ReadString() liest man zeilenweise eine Datei aus. Das, was gelesen wird, kannst du in eine LinkedList packen (oder einem Array, wenn du die genaue Zeilenzahl weißt).
Code: Alles auswählen
NewList TxTInhalt.s()
IF OpenFile(#Datei, Datei$)
Repeat
AddElement(TxtInhalt())
TxtInhalt() = ReadString()
Until Eof(#Datei)
CloseFile(#Datei)
Endif
Keine Garantie, dass der Code so läuft, wie er hier steht.
Um innerhalb eines Strings Stellen zu finden, die mit bestimmten Zeichen markiert sind (zB " [ ] ( ) etc.) schau mal in der Hilfe nach
FindString().
Greetz Laurin
???
Verfasst: 27.04.2005 13:37
von Green Snake
Hallo
könntest du/Ihr das mir genauer erläutern?
vielleicht an einem beispiel mit messagerequestern?
also der
1 requester = line 1
2 requester = line 2
3 requester = line 3
usw.
währe wirklich nett.
habs eben mit dateien bzw speicher und öffnen noch nicht so am hut

Verfasst: 27.04.2005 13:56
von MLK
#File_ID nur als verdeutlichung. kannst auch immer 0 nehmen, ist bei files nicht so wild. der code debugt jede zeile die in der datei steht.
Code: Alles auswählen
#FILE_ID = 0
Files$ = "?"
If ReadFile(#FILE_ID, Files$) = #False : Debug "kann die Datei " + Files$ + " nicht öffnen!" : Else
Repeat
Debug ReadString()
Until Eof(#FILE_ID)
EndIf
Verfasst: 27.04.2005 14:32
von zigapeda
Das wo du als erstes angesprochen hast benutze ich immer weil es ist unabhänig davon ob in dem string ein zeilenumbruch ist oder nicht dabei würde die textdatei so aussehen:
Code: Alles auswählen
[1]Hallo[/1][2]Du[/2][3]Wie[/3][4]Gehts[/4][5]Dir?[/5]
ich zeig dir mal ein beispiel aber nicht mit einer textdatei sondern mit einer variablen:
Code: Alles auswählen
zeile$ = "[1]Hallo[/1][2]Du[/2][3]Wie[/3][4]Gehts[/4][5]Dir?[/5]"
For a = 1 To 5
pos1 = FindString(zeile$,"[" + Str(a) + "]",0)+ 3
pos2 = FindString(zeile$,"[/" + Str(a) + "]",0)
lange = pos2 - pos1
Debug Mid(zeile$,pos1,lange)
Next a
Ist zwar länger als die anderen codes aber dafür kann man auslesen was man will z.B. kann man eine prozedur schreiben die schaut was zwischen [5] und [/5] steht.
Was jetzt noch zur textdatei fehlt ist das öffnen der textdatei und das auslesen des textes und speichern in die variable zeile$
Cool
Verfasst: 27.04.2005 15:31
von Green Snake
hallo
habe den code getestet, und finde ihn cool
aber er bringt noch ein paar fragen mit.
das mit dem öffnen der datei habe ich geschaft.
das klapp auch reibungslos.
aber jetzt zu den fragen.
1. es geht nur, wen die [] auf der gleichen linie sind, also so
Code: Alles auswählen
[1]Hallo[/1][2]Du[/2][3]Wie[/3][4]Gehts[/4][5]Dir?[/5]
geht ds aber auch so?
Code: Alles auswählen
[1]Hallo[/1]
[2]Du[/2]
[3]Wie[/3]
[4]Gehts[/4]
[5]Dir?[/5]
2. frage
wie kan ich die einzelnen werte auf verschiedene variabeln verteilen?
habe es oben schon angesprochen:
geht das auch?
________________________________________________________
danke dir und euch andern, für diese tollen codes
Verfasst: 27.04.2005 15:44
von zigapeda
also wenn du das:
Code: Alles auswählen
OpenFile(0,"test.txt")
Repeat
zeile$ = ReadString()
Until eof=0
CloseFile(0)
vor den ersten code schreibst und in dem ordner wo die datei gespeichert ist eine textdatei mit dem inhalt:
Code: Alles auswählen
[1]Hallo[/1]
[2]Du[/2]
[3]Wie[/3]
[4]Gehts[/4]
[5]Dir?[/5]
und dem namen test.txt ist funktioniert es auch. Das mit werten einer variable zuweißen funktioniert glaub ich nicht weil bei meinem beispiel wird der wert zwischen [zahl] und [/zahl] ausgelesen, ähnlich wie html.
Es geht
Verfasst: 27.04.2005 15:54
von Green Snake
hallo
danke, es funzt.
aber wie kan man dan den code sinvoll verwenden, wen man nicht jede libie einer variable zuteilen kann?
klar kan man für jede variable eine datei anlegen, aber in meine fall, währen das dan etwa um die 100 für eine sprache.
(will eben ein multi sprach programm machen.)
wie würdest du oder ihr das machen?
ps, danke für deine hilfe zigapeda
Repeat Until vs. While Wend
Verfasst: 27.04.2005 15:55
von Kiffi
Hallo,
ich sehe hier des öfteren Code zum Auslesen von Dateien in der Art und
Weise:
Code: Alles auswählen
OpenFile(0,"test.txt")
Repeat
zeile$ = ReadString()
Until eof=0
CloseFile(0)
Meines Erachtens ist es sauberer mit While-Wend zu arbeiten. Denn wenn
die auszulesende Datei leer ist, soll die Schleife erst gar nicht betreten
werden.
Code: Alles auswählen
OpenFile(0,"test.txt")
While Eof(0) = 0
zeile$ = ReadString()
Wend
CloseFile(0)
Grüße ... Kiffi
Verfasst: 27.04.2005 16:17
von zigapeda
@kiffi danke kenn mich mit den schleifen noch nicht so gut aus
@greensnake du kannst ja für jedes wort das du brauchst extra ein feld anlegen (feld = [bla]feld[/bla] mir ist nix besseres eingefallen) also z.B. einen button auf dem abbrechen steht
oder für ganze texte
und dann hald für die andere sprache z.B. englisch
Code: Alles auswählen
[abbr,deu]Cancel[/abbr,deu]
[begr,deu]Cordially welcome by...[/begr,deu]
(sollte die gramatik falsch sein oder ein englisches wort falsch geschrieben sein etc. ich bin kein englisch übersetzer von beruf also darf ich das)