habe wie von Kiffi angeführt die Fehler bereinigt und nun fuzzzzzzzzzzzzt´s die Sache.
Code: Alles auswählen
; German Forum: DateiLesenZeile 3.1.x
; Author: Velindos + Kiffi + CodeCommander + c4s + Andesdaf
; Date: 19.November 2010
; OS: Windows7 64-Bit
; Demo: Yes
; Created: Daten Beispiel für *.txt Datei
; Weiteres über Daten laden und speichern
;Variablen definieren
Global Dim text$(999):Global anzahl
Global Dateiname$:
Global DateinameLaden$ ="C:\Install.txt"
Global Dim Software$(999)
Global Dim Hersteller$(999)
Global Dim Datum$(999)
Global Dim Umfang$(999)
Global Dim Version$(999)
;Fenster und Gadget-Liste
If OpenWindow(0,100,100,400,520,"Daten laden/speichern",#PB_Window_SystemMenu)
If CreateGadgetList(WindowID(0))
ButtonGadget(1,10,10,120,20,"Laden C:\Install.txt")
ButtonGadget(11,10,30,120,20,"Laden C:\InstallRev1.txt")
ButtonGadget(2,140,10,150,20,"Speichern C:\InstallRev1.txt")
ButtonGadget(7,140,30,150,20,"Speichern C:\InstallRev2.txt")
ButtonGadget(3,300,10,100,20,"Löschen")
ButtonGadget(8,300,30,100,20,"Exit")
ListViewGadget(4,20,60,360,380)
ButtonGadget(5,20,460,150,20,"Ein Element hinzufügen")
ButtonGadget(6,240,460,140,20,"Letztes Element löschen")
TextGadget(9, 280, 480, 105, 20, "Created by Velindos")
TextGadget(10, 15, 445, 365, 20, "Deinstallierbare Software über CCleaner Datei erstellen und bearbeiten")
EndIf
Else
MessageRequester("","Fenster konnte nicht geöffnet werden!",0)
EndIf
;StatusBar öffnen
If CreateStatusBar(0,WindowID(0))
AddStatusBarField(500)
EndIf
;Laden
Procedure Laden()
; Datei UTF-16LE mit Signatur (BOM) gespeichert.
Define Zeile.s
Define Usage
Define Quit
Define VVE
Dim Ausgabe.s(999)
Usage = ReadFile(#PB_Any, DateinameLaden$) ; Pfad anpassen!
;Usage = ReadFile(#PB_Any, "c:\Datei0.txt") ; Pfad anpassen!
a=0
If Usage
ReadStringFormat(Usage)
While Not Eof(Usage) ; Wir öffnen die Datei pbtutorial.txt zum Lesen
;[1] Zeile=Str(a):Zeile = Zeile+" "
text$(a) = ReadString(Usage, #PB_Unicode); Wir lesen die Zeichen auf Zeile
Software$(a)= StringField(text$(a), 1, #TAB$) ;Software
Hersteller$(a)= StringField(text$(a), 2, #TAB$) ;Hersteller
Datum$(a)= StringField(text$(a), 3, #TAB$) ;Datum
Umfang$(a)= StringField(text$(a), 4, #TAB$) ;Umfang
Version$(a)= StringField(text$(a), 5, #TAB$) ;Version
;[2] text$(a) = ReplaceString(text$(a), #TAB$, #LF$) ; Vorkommen des 'SuchString$'zu finden
;[*] Debug StringField(text$(a), 1, " ") ;Zeigen uns Debuger an
;[1]Ausgabe(1) = AddGadgetItem(#myListIconGadget, 0, Text$ [, ImageID [, Flags]])
;[1]AddGadgetItem(4,-1,text$(a))
AddGadgetItem(4,-1,Software$(a))
anzahl = a
a=a+1;zähler erhöhen
Wend
;[*] MessageRequester("Text","Text: "+Ausgabe(1),0) ; Nun zeigen wir die Zeichen an
CloseFile(Usage)
StatusBarText(0,0,"Daten erfolgreich eingelesen"+FormatDate("%hh:%ii:%ss", Date()),#PB_StatusBar_Center )
; Wir schließen die Datei. Was jedoch nicht unbedingt
Else ; Wenn die Datei nicht gefunden wurde
MessageRequester("Fehler","Konnte die Datei nicht öffnen.",0) ; Fehlermeldung
EndIf
EndProcedure
;Speichern
Procedure Speichern()
;UTF-16LE mit Signatur (BOM) gespeichert.
If CreateFile(1,Dateiname$) ;[1]OpenFile(#PB_Any,"Daten.txt")
WriteStringFormat(1, #PB_Unicode)
;WriteStringN(1 ,Str(anzahl), #PB_Unicode) ;[1]WriteStringN(1,Str(anzahl))
For a=0 To anzahl
;Debug Software$(a)
;speicher$=Software$(a)+#TAB$+Hersteller$(a)+#TAB$+Datum$(a)+#TAB$+Umfang$(a)+#TAB$+Version$+#TAB$+#LF$
;speicher$ = text$(a)
speicher$=Software$(a)+#TAB$+Hersteller$(a)+#TAB$+Datum$(a)+#TAB$+Umfang$(a)+#TAB$+Version$
;text$(a)=ReplaceString(speicher$,#LF$,#TAB$,#PB_String_NoCase)
;Debug speicher$
WriteStringN(1,speicher$, #PB_Unicode)
;Debug WriteStringN
;WriteStringFormat(1, #PB_Unicode)
Next
CloseFile(1)
StatusBarText(0,0,"Daten erfolgreich gespeichert "+FormatDate("%hh:%ii:%ss", Date()),#PB_StatusBar_Center )
EndIf
EndProcedure
;Zum eigentlichen Programmstart: Laden aufrufen *******************************
Laden()
;Das erste Element der Liste aktivieren
SetGadgetState(4,0)
Repeat
EventID.l = WaitWindowEvent()
If EventID = #PB_Event_Gadget
;Schalter LADEN
If EventGadget()=1
DateinameLaden$="C:\Install.txt"
ClearGadgetItemList(4):Laden()
EndIf
;Schalter LADEN
If EventGadget()=11
DateinameLaden$="C:\InstallRevision1.txt"
ClearGadgetItemList(4):Laden()
EndIf
;Schalter SPEICHERN .txt
If EventGadget()=2
Dateiname$= "C:\InstallRevision1.txt"
Speichern()
EndIf
;Schalter SPEICHERN InstallRev2.txt
If EventGadget()=7
Dateiname$= "C:\InstallRevision2.txt"
Speichern()
EndIf
;Schalter LISTE LÖSCHEN
If EventGadget()=3
ClearGadgetItemList(4)
StatusBarText(0,0,"Liste gelöscht "+FormatDate("%hh:%ii:%ss", Date()),#PB_StatusBar_Center )
EndIf
;Schalter EXIT
If EventGadget()=8
End
EndIf
;Schalter NEUER EINTRAG
If EventGadget()=5
anzahl=anzahl+1
Software$(anzahl)="Neuer Eintrag "+FormatDate("%hh:%ii:%ss", Date())
AddGadgetItem(4,anzahl,Software$(anzahl))
;text$(anzahl)="Neuer Eintrag "+FormatDate("%hh:%ii:%ss", Date())
;AddGadgetItem(4,anzahl,text$(anzahl))
EndIf
;Schalter LETZTEN EINTRAG LÖSCHEN
If EventGadget()=6
If anzahl>=0
RemoveGadgetItem(4,anzahl)
anzahl=anzahl-1
EndIf
EndIf
EndIf
Until EventID = #PB_Event_CloseWindow
End
; IDE Options = PureBasic v4.00 (Windows - x86)
; Folding = -
; EnableXP
; DisableDebugger
Nochmals besten Dank für die Hilfe an CodeCommander + c4s + Andesdaf, ins besondere an Kiffi(nicht an Kifi).
Gruss ...................... Velindos
Tip: Icon auf Hompage anzeigen: Icon in Verzeichniss von Index legen und in Index Datei eintragen: <link rel="shortcut icon" href="favicon.ico" >
Praktisch für die Lesezeichenleiste und dirketen Aufruf darüber unter Firefox