Frage zu Readline

Übersicht BlitzBasic Allgemein

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Aug 22, 2004 1:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
habe da mal was zusammen gebastelt!
2 Functionen, einmal zum auslesen von zeilen
und eine zum ersetzen von Zeilen, falls die Zeile nicht existiert gibt es eine Fehlermeldung
Diese Function kann aber auch Zeilen einfügen, wenn die Zeile aber über das Ziel hinaus schießt wird diese drangehängt!
Achja, inclusive Testfile....
Overwrite beachten
was noch fehlt ist eine Zeile löschen, aber wer braucht das schon.......

Die Functionen am besten mit include am Anfang reinladen wegen den types
Code: [AUSKLAPPEN]
Function  ReturnLine$(Datei$,Posline%)
   Dat = ReadFile (Datei$)
   If Not Dat Then Return "...ERROR"
   While Not Eof(dat)
      If Posline% = 1 Then
           LineData$ = ReadLine (dat)
         CloseFile(Dat)
         Return LineData$
      End If
        Posline% = Posline% -1
      ReadLine (dat)
   Wend
   CloseFile(Dat)
   Return "...ERROR"
End Function

:::::::Type Fileline   Field LineString$   End Type
Function InsertLine(Datei$, Posline%, LineData$,overwrite = 0); firstline = 1
   Dat = OpenFile (Datei$)
   If Dat = 0 Or Posline% =< 0  Then Return -1
   ;Position ermitteln
   While Not Eof(dat)
      If Posline% = 1 Then
           CurrentPos = FilePos(Dat)
         Exit
      End If
        Posline% = Posline% -1
      ReadLine (dat)
   Wend
   If CurrentPos = 0 Then CurrentPos = FilePos(Dat)
   ; überschreiben ???
   If (Not Eof(dat)) And overwrite Then ReadLine (Dat)
   ; restlichen auslesen
   While Not Eof(dat)
        liste.Fileline = New Fileline
        liste\LineString$ = ReadLine (dat)
   Wend
   ; Zur Position Springen
   SeekFile  (Dat,CurrentPos)
   ;Neue Zeile rein   
   WriteLine Dat, LineData$
   ;Restlichen reinschreiben   
   For liste.Fileline = Each Fileline
       WriteLine Dat, liste\LineString$
       Delete liste.Fileline
   Next
   CloseFile(Dat)
End Function

;Datei erstellen######################################################
.start
dat = OpenFile ("test.txt")
      If Not dat Then
            dat = WriteFile ("test.txt")
            If Not dat Then RuntimeError ("Datei kann nicht erstellt werden")
            For x= 1 To 10
               WriteLine dat ,"Zeileorginal " + x
            Next : x= 0
            CloseFile(dat)
            Goto start
      End If
CloseFile(dat)
; Ende Datei erstellen############################################

;Zeile 4 auslesen
   A$ = ReturnLine$("test.txt",10)
      If A$ = "...ERROR" Then RuntimeError("Fehler beim lesen der Datei!!   Die Zeile existiert nicht!")
   Print a$
   
;Zeile 3 wird überschrieben
   If  insertline("test.txt",3,"Hier die 3. Zeile überschrieben",1) < 0 Then
      RuntimeError (" Fehler in der Datei")
   End If
WaitMouse
End
[BB2D | BB3D | BB+]

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group