Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 12.06.2006, 19:04 Titel: Zeilen aus einer Datei lesen |
|
|
Hi,
ich hab folgenden Code:
Code: |
f = FREEFILE
OPEN "file.ext" FOR INPUT AS #f
DO UNTIL EOF(f)
INPUT #f, x$
print x$
LOOP
CLOSE #F
|
Das liest mir jede Zeile der Datei file.ext als Variable x$ ein. Kann ich auch jede neue Zeile der Datei als eigene Variable einlesen lassen? Wenn ja, wie?
Danke für eure Hilfe.
Gruß s-m-n |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 12.06.2006, 19:11 Titel: |
|
|
Code: | dim as integer zeilen,f,n
dim as string zeile(255) ' je nach dem ändern, so können bis zu 256 zeilen eingelesen werden..
f = FREEFILE
OPEN "file.ext" FOR INPUT AS #f
WHILE NOT EOF(f)
LINE INPUT #f, zeile(zeilen)
zeilen+=1
WEND
CLOSE #F
PRINT zeilen;" Zeilen eingelesen:"
FOR n = 0 to zeilen-1
PRINT n;") ";zeile(n)
NEXT n |
so in der richtung?
zeile(0) is dann die erste zeile, zeile(1) die zweite, zeile(2) die dritte usw, weil bei 0 mim zählen angefangen wird geht das bis zeile(zeilen-1) als letzte zeile. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 12.06.2006, 21:26 Titel: |
|
|
MisterD's Lösung arbeitet mit sogenannten Arrays. Ein Array ist im Prinzip eine normale Variable,
nur dass sie mehrere Einträge zulässt; im konkreten obigen Fall sind das genau 256.
Leicht verbesserter Code für variable Dateigrößen (bis 2GB):
Code: |
option base 1
'$dynamic
dim as integer zeilen, f, n
dim as string Dummy, zeile(1)
f = FREEFILE
OPEN "file.txt" FOR INPUT AS #f
WHILE NOT EOF(f)
LINE INPUT #f, Dummy
zeilen+ = 1
WEND
CLOSE #F
REDIM AS STRING zeile(zeilen)
F = FREEFILE
OPEN "file.txt" FOR INPUT AS #f
FOR n = 1 TO zeilen STEP 1
LINE INPUT #f, zeile(n)
NEXT n
CLOSE #F
PRINT zeilen; " Zeilen eingelesen:"
FOR n = 1 to zeilen STEP 1
PRINT zeile(n)
NEXT n
|
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 12.06.2006, 21:45 Titel: |
|
|
muss das erste DIM Zeile (1) nicht auch schon ein REDIM sein, damit's funktioniert?! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 12.06.2006, 21:48 Titel: |
|
|
bin ich wohl im alten qb stecken geblieben, wo man ja noch $Dynamic braucht...  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
s-m-n

Anmeldungsdatum: 03.10.2005 Beiträge: 106 Wohnort: Pietling in Oberbayern / Deutschland
|
Verfasst am: 13.06.2006, 10:04 Titel: |
|
|
@MisterD
Danke, dein Code hat wunderbar funktioniert. Ich setz im Quellcode einen Link auf diese Seite.
@alle
Danke für eure Bemühungen.
Gruß s-m-n |
|
Nach oben |
|
 |
|