Arbeiten mit Dateien

Anfängerfragen zum Programmieren mit PureBasic.
toyman
Beiträge: 3
Registriert: 30.07.2006 20:13

Arbeiten mit Dateien

Beitrag von toyman »

hallo,

ich möchte eine textdatei zeile für zeile einlesen und gleichzeitig in eine neue textdatei schreiben.

beispiel:

textdatei1.txt
1111 test
2222 hallo
3333 test2

textdatei2.txt erzeugen
test
hallo
test2

hat jemand einen passende pb code für mich?

gruss
toyman
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 »

>> hat jemand einen passende pb code für mich?
Du möchtest also garnicht Wissen wie es geht, sondern nen fertigen Code :freak:
Dann verwende mal die Boardsuche, dieselbe Frage wurde bereits mehrmals
gestellt und beantwortet.
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
toyman
Beiträge: 3
Registriert: 30.07.2006 20:13

Beitrag von toyman »

hab folgendes probiert, funktioniert aber noch nicht...

Code: Alles auswählen

testdatei1$ = "c:\testdatei1.txt"
testdatei2$ = "c:\testdatei2.txt"

if ReadFile(0, testdatei1$)
  if CreateFile(1, testdatei2$) 
    While Eof(0) = 0
      dummy$ = ReadString() ; sollte testdatei1.txt zeileweise lesen      
      WriteStringN( Mid(dummy$,6,Len(dummy$)-6) ) ; sollte in testdatei2.txt schreiben
    Wend
    CloseFile(0)
    CloseFile(1)
  EndIf
EndIf
die datei testdatei2.txt wird riesig gross, ich muß das programm mit dem taskmanager beenden

wer kann helfen?

gruss
toyman
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 »

Wenn Du PB4 nutzt:

Code: Alles auswählen

If ReadFile(0, testdatei1$)
  If CreateFile(1, testdatei2$)
    While Eof(0) = 0
      dummy$ = ReadString(0) ; sollte testdatei1.txt zeileweise lesen     
      WriteStringN(1, Mid(dummy$,6,Len(dummy$)-6) ) ; sollte in testdatei2.txt schreiben
    Wend
    CloseFile(0)
    CloseFile(1)
  EndIf
EndIf
Bei mir gehts


Bei älteren PB Versionen sollte ein UseFile hilfreich sein :mrgreen:
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
toyman
Beiträge: 3
Registriert: 30.07.2006 20:13

Beitrag von toyman »

hallo ts-soft,

danke für den UseFile Tip :allright: , jetzt funktioniert es bei mir.
mußte zusätzlich die länge bei Mid noch anpassen (5) ...
jetzt funzt es ...

Code: Alles auswählen

testdatei1$ = "c:\testdatei1.txt"
testdatei2$ = "c:\testdatei2.txt"

If ReadFile(0, testdatei1$)
  If CreateFile(1, testdatei2$)
    While Eof(0) = 0
      UseFile(0)
      dummy$ = ReadString() ; sollte testdatei1.txt zeileweise lesen     
      UseFile(1)
      WriteStringN( Mid(dummy$,6,Len(dummy$)-5) ) ; sollte in testdatei2.txt schreiben
    Wend
    CloseFile(0)
    CloseFile(1)
  EndIf
EndIf 
ausgabe der testdatei2:
test
hallo
test2

gruss
toyman
Antworten