Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Zeilen aus einer Datei lesen

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 12.06.2006, 19:04    Titel: Zeilen aus einer Datei lesen Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 12.06.2006, 19:11    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 12.06.2006, 21:26    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 12.06.2006, 21:45    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 12.06.2006, 21:47    Titel: Antworten mit Zitat

Nene, klappt auch so zwinkern

jb
_________________
Elektronik und Programmieren
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 12.06.2006, 21:48    Titel: Antworten mit Zitat

bin ich wohl im alten qb stecken geblieben, wo man ja noch $Dynamic braucht... durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
s-m-n



Anmeldungsdatum: 03.10.2005
Beiträge: 106
Wohnort: Pietling in Oberbayern / Deutschland

BeitragVerfasst am: 13.06.2006, 10:04    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz