txt dateien auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Outlaw
Beiträge: 25
Registriert: 26.10.2005 01:45

txt dateien auslesen

Beitrag von Outlaw »

Hallo!

Wie kann ich bestimmte Zeilen einer txt datei auslesen?
das auslesen selbst geht ja normal mit ReadFile soweit ich weiss

Mfg Outlaw
Hellhound66
Beiträge: 476
Registriert: 23.03.2005 23:19

Beitrag von Hellhound66 »

PB HILFE hat geschrieben:ReadString()

Syntax

Text$ = ReadString()
Beschreibung

Liest einen String aus der aktuell geöffneten Datei, bis ein 'End Of Line' (deutsch: "Ende der Zeile") Zeichen gefunden wird (Unix und DOS Dateiformate werden unterstützt).

Für ein Beispiel sehen Sie zum ReadFile() Befehl.
Unterstützte OS

All
Optimismus ist ein Mangel an Information.
Benutzeravatar
Outlaw
Beiträge: 25
Registriert: 26.10.2005 01:45

Beitrag von Outlaw »

das hilft mir nicht weiter es liest doch nur die erste zeile oder?
ich brauche ein code um zB die 5 Zeile auszulesen ohne davor noch die anderen 4 auszulesen
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Das könnte dir helfen.
http://www.purebasic-lounge.de/viewtopi ... =textdatei

Sorry aber die Kleinigkeit poste ich nicht extra nochmal.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Ganz spontan zusammen gekratzt.

Code: Alles auswählen

Procedure.s GetTXTLine(strDateiName.s, lngZeile.l)
    DefType.l lngFileID, lngI
    DefType.s strResult
    
    lngFileID = ReadFile(#PB_Any, strDateiName)
    If lngFileID
        If lngZeile > 1
            For lngI = 1 To lngZeile-1
                ReadString()
            Next lngI
        EndIf
        strResult = ReadString()
        CloseFile(lngFileID)
    EndIf
    
    ProcedureReturn strResult
EndProcedure


Debug GetTxtLine("C:\Text.txt", 1)
//Edit:
ich vergesse immer so gerne die Klammern -_-
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Oder PBOSL_FastFile:
FastOpenTextFile(Nr.l, Dateiname.s, Trennzeichen.s)
FastReadLine(NR.l, LineNR.l)
FastCloseTextFile(NR.l)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Outlaw
Beiträge: 25
Registriert: 26.10.2005 01:45

Beitrag von Outlaw »

MVXA hat geschrieben:Ganz spontan zusammen gekratzt.

Code: Alles auswählen

Procedure.s GetTXTLine(strDateiName.s, lngZeile.l)
    DefType.l lngFileID, lngI
    DefType.s strResult
    
    lngFileID = ReadFile(#PB_Any, strDateiName)
    If lngFileID
        If lngZeile > 1
            For lngI = 1 To lngZeile-1
                ReadString()
            Next lngI
        EndIf
        strResult = ReadString()
        CloseFile(lngFileID)
    EndIf
    
    ProcedureReturn strResult
EndProcedure


Debug GetTxtLine("C:\Text.txt", 1)
//Edit:
ich vergesse immer so gerne die Klammern -_-
Danke das klappt hervorragend! ;)

Dann hätt ich noch ein problem :oops: :
wie kann ich denn noch z.B. zeile 5 zeichen 5 bis 13 auslesen?
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

Outlaw hat geschrieben: Dann hätt ich noch ein problem :oops: :
wie kann ich denn noch z.B. zeile 5 zeichen 5 bis 13 auslesen?
Laut Doku sollte es dafür eine Funktion geben:

Result$ = Mid(String$, StartPosition, Length)

bis denne...
scholly
Benutzeravatar
Outlaw
Beiträge: 25
Registriert: 26.10.2005 01:45

Beitrag von Outlaw »

und das geht auch!
dann hätte ich jetzt alles zusammen!

DANKE!!
Antworten