Textfile *.txt Bearbeiten

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Textfile *.txt Bearbeiten

Beitrag von Velindos »

Danke, du hast recht, jetzt funkts. Wenn ich deinen Vorschlag in einen getrennten Windows anzeigen will, dann geht der aufruf, jedoch wenn ich das Window schliesse verschwinden alle, hast du da eine IDEE????

Code: Alles auswählen

Begin Hauptprogramm ***************************************************
  
  Repeat
  Select WaitWindowEvent(#Window_0)
    Case #PB_Event_CloseWindow: End
    Case #PB_Event_Gadget
      
      Select EventGadget()
          
        Case #Button_Wait: 
          SetActiveWindow(#Window_0)  
          Gosub Dateiholen 
                 
        Case #Button_Anzeigen
          Gosub Kifi 
          SetActiveWindow(#Window_1)   ; Frame 2
                                      
        Case #Button_Exit: End
                  
      EndSelect
  EndSelect
ForEver
Gruss .............. Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Textfile *.txt Bearbeiten

Beitrag von Kiffi »

Velindos hat geschrieben:hast du da eine IDEE????
hier:

Code: Alles auswählen

Case #PB_Event_CloseWindow
muss noch eine Abfrage rein, welches Fenster das Close-Event ausgelöst hat.

Grüße ... Kiffi
a²+b²=mc²
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

Re: Textfile *.txt Bearbeiten

Beitrag von ts-soft »

Da sind wohl noch ne menge mehr Fehler :wink:

Code: Alles auswählen

Begin Hauptprogramm ***************************************************
 
  Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0 : End
        Case 0 : CloseWindow(0)
      EndSelect
    Case #PB_Event_Gadget
     
      Select EventGadget()
         
        Case #Button_Wait:
          SetActiveWindow(#Window_0) 
          Gosub Dateiholen
                 
        Case #Button_Anzeigen
          Gosub Kifi
          SetActiveWindow(#Window_1)   ; Frame 2
                                     
        Case #Button_Exit: End
                 
      EndSelect
  EndSelect
ForEver 
Das wird aber auch noch nicht funktonieren weil #Window_0 = 0 und das zweite Fenster ebenfalls 0

Die Sache mit Gosub ist auch nicht so empfehlenswert und ReadStringFormat fehlt auch noch.

Gruß
Thomas
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
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Textfile *.txt Bearbeiten

Beitrag von Velindos »

Hallo CodeCommander,
danke für eure Unterstützung, bin noch Anfänger und passt einiges nicht. Zum Besseren Verständnis hier mein letzter Stand. Einlesen der Datei funktioniert. Auch der Aufruf von Kifi Windows, nur das Ende..........
Versuche gerade klar zu kommen und bin für Tips dankbar!!!!!

Code: Alles auswählen

;*********************************************************************************
;*                         >>> DateiLesenZeile-9.pb <<<                           *                                
;*                                Version 1.0.x                                  *
;*                             Assembliert by Velindos                           *
;*                                  2010-11-17                                   *
;;*********************************************************************************
; WICHTIG: Damit dieser Text angezeigt werden kann, muss install.txt auf C:\
; vorhanden sein, ist eine feine Sache zum lernen des Datei.txt Handling unter 
; PureBasic da ich Anfänger bin. Möchte Anhand dieses Beispiele die Software 
; auslesen können und bearbeiten und in einer getrennten Datei speichern. 
; ReadFile(File,Ziel) genau wie OpenFile(), nur das wir die Datei diesmal nur lesen
; und anzeigen wollen und nicht erzeugen.
; Hinweis ************************************************************************
; Hinweis 1: Die install.txt ist in UTF-16LE mit Signatur (BOM) gespeichert. 
; Destawegen musst Du #PB_Unicode als Extraparameter bei ReadString() mit angeben
; Hinweis 2: Wenn Du die Felder selber auseinanderschnippeln willst, dann schau Dir mal
; CountString() und StringField() an.
Global ZZ
ZZ.i=0
ZZS.s = "0"
Spalte0.i
Spalte0= 0
Spalte1.i
Spalte2.i
Spalte3.i
Spalte4.i




EnableExplicit
#Window_0= 1
#Window_1 = 2
#myListIconGadget = 0


;- Gadget Constants
;
Enumeration
  #String_0
  #String_1
  #String_2
  #String_3
  #String_4
  #String_5
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Text_4
  #Text_5
  #Button_Exit
  #Button_Wait
  #Button_Anzeigen
  #Spalte1
  #Spalte2
  #Spalte3
  #Spalte4
  #Spalte5
EndEnumeration

Dim Ausgabe.s(999)
Define Zeile.s
Define Dateiname1.s
Define Dateiname2.s

Dim T_ID.s(999)
Dim T_Aktuell.s(999)      ;Hilfszeiger
Dim T_Software.s(999)
Dim T_Hersteller.s(999)
Dim T_Datum.s(999)
Dim T_Umfang.s(999)
Dim T_Version.s(999)

Define FF
Define Quit
Define WWE

;Hinweis 2: Wenn Du die Felder selber auseinanderschnippeln willst,
;dann schau Dir mal CountString() und StringField() an.   
;Text$ = ReadString(#Datei [, Flags]) => Liest einen String
;Ergebnis = ReadFile(#Datei, DateiName$) => Öffnet eine existierende Datei
;Ergebnis$ = StringField(String$, Index, Trennzeichen$) => Gibt den Feldinhalt
;Ergebnis = CountString(String$, StringToCount$) => Gibt die Anzahl zurück
;String$ = ReplaceString(String$, SuchString$, ErsatzString$ [, Modus [, StartPosition]]) =>Vorkommen des 'SuchString$'zu finden
;Ergebnis = ReadStringFormat(#Datei) =>Überprüft aktuelle Dateiposition ein BOM (Byte Order Mark) enthält
Dateiname1= "c:\install.txt"
Dateiname2 = "C:\Install_Revision.txt"
Begin:
 OpenWindow(#Window_0, 220, 0, 640, 480, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
     ;ListIconGadget(#myListIconGadget,0, 220, 680, 260, "Deinstallierbare Programme", 100)
     ;AddGadgetColumn(#myListIconGadget,1, "Hersteller", 100)
     ;AddGadgetColumn(#myListIconGadget, 2, "Installiert am", 100)
     ;AddGadgetColumn(#myListIconGadget, 3, "Größe", 100)
     ;AddGadgetColumn(#myListIconGadget, 4, "Version", 100) 
     
     StringGadget(#String_0, 5, 200, 35, 25, "ID")
      StringGadget(#String_1, 45, 200, 200, 25, "Software")
      StringGadget(#String_2, 250, 200, 140, 25, "Hersteller")
      StringGadget(#String_3, 395, 200, 75, 25, "Datum")
      StringGadget(#String_4, 475, 200, 75, 25, "Umfang")
      StringGadget(#String_5, 555, 200, 75, 25, "Version")
      TextGadget(#Text_0, 5, 185, 15, 15, "ID")
      TextGadget(#Text_1, 45, 185, 80, 15, "Software")
      TextGadget(#Text_2, 250, 185, 80, 15, "Hersteller")
      TextGadget(#Text_3, 555, 185, 45, 15, "Version")
      TextGadget(#Text_4, 475, 185, 45, 15, "Umfang")
      TextGadget(#Text_5, 395, 185, 45, 15, "Datum")
      ButtonGadget(#Button_Exit, 570, 15, 55, 30, "Exit")
      ButtonGadget(#Button_Wait, 10, 15, 85, 30, "Datei Lesen")
      ButtonGadget(#Button_Anzeigen, 110, 15, 85, 30, "Datei Anzeigen")
     

      
      
    
;OpenWindow(#myWindow, #PB_Ignore, #PB_Ignore, 640, 480, "")


;ListIconGadget(#myListIconGadget, 0, 0, 640, 480, "Deinstallierbare Programme", 100)
;AddGadgetColumn(#myListIconGadget, 1, "Hersteller", 100)
;AddGadgetColumn(#myListIconGadget, 2, "Installiert am", 100)
;AddGadgetColumn(#myListIconGadget, 3, "Größe", 100)
;AddGadgetColumn(#myListIconGadget, 4, "Version", 100)




;Begin Hauptprogramm ***************************************************

  Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0 : End
        Case 0 : CloseWindow(0)
      EndSelect
    Case #PB_Event_Gadget
     
      Select EventGadget()
         
        Case #Button_Wait:
          SetActiveWindow(#Window_0)
          Gosub Dateiholen
                 
        Case #Button_Anzeigen
          Gosub Kifi
          SetActiveWindow(#Window_1)   ; Frame 2
                                     
        Case #Button_Exit: End
                 
      EndSelect
  EndSelect
ForEver 
    

; ReadString() ist dazu da, um die verschiedenen Zeichen einer Zeile in der Datei zu 
; lesen. Buchstaben und Sonderzeichen werden hier einfach allgemein Zeichen genannt.

; Ich glaube, dass es für einen Einstieg in die File Library reicht, man kann das ganze 
; noch mit der FileSytem Library erweitern.


; Cu 
; Bluespeed



; 05. Juli 2003: Überarbeitete Sprache und Layout by André Beer - exklusiv für www.purearea.net



Dateiholen:
FF = ReadFile(#PB_Any, Dateiname1)                            ; Pfad anpassen!
ZZ=0

;If ReadFile(0,"C:\Install.txt")                                     ; Wir öffnen die Datei pbtutorial.txt zum Lesen
 If FF
 
   While Not Eof(FF)
     
        Zeile = ReadString(FF, #PB_Unicode); Wir lesen die Zeichen auf Zeile 
        
        Ausgabe(1)= StringField(Zeile, 1, #TAB$)  ;Software
        Ausgabe(2)= StringField(Zeile, 2, #TAB$)  ;Hersteller
        Ausgabe(3)= StringField(Zeile, 3, #TAB$)  ;Datum
        Ausgabe(4)= StringField(Zeile, 4, #TAB$)  ;Umfang
        Ausgabe(5)= StringField(Zeile, 5, #TAB$)  ;Version
        
        ZZS = Str(ZZ)
                
        StringGadget(#String_0, 5, 200, 35, 25, ZZS)
        StringGadget(#String_1, 45, 200, 200, 25, Ausgabe(1))
        StringGadget(#String_2, 250, 200, 140, 25, Ausgabe(2))
        StringGadget(#String_3, 395, 200, 75, 25, Ausgabe(3))
        StringGadget(#String_4, 475, 200, 75, 25, Ausgabe(4))
        StringGadget(#String_5, 555, 200, 75, 25, Ausgabe(5))
        
        Zeile = ReplaceString(Zeile, #TAB$, #LF$) ; Vorkommen des 'SuchString$'zu finden
        AddGadgetItem(#myListIconGadget, -1, Zeile)
        ;Debugen
        Debug StringField(Zeile, 1, " ") ;Zeigen uns Debuger an
        Debug StringField(Zeile, 3,  " ") ;Zeigen uns Debuger an
        
        
       
        ;Delay(3000); Wartet 3 Sekunden is a Thread
        
        ZZ  = ZZ+1
        
        
        
        ;MessageRequester("Text","Text: "+Ausgabe(1),0)                    ; Nun zeigen wir die Zeichen an 
    Wend 
 
  CloseFile(FF)

    Else
                                                   ; sein muss, da PB sie auch automatisch schließt.   


    Debug "install.txt konnte nicht geladen werden"
    MessageRequester("Fehler","Konnte die Datei nicht öffnen.",0)   ; Fehlermeldung

EndIf                                                              ; Ende der Abfrage
Return



Kifi:
If OpenWindow(#Window_1, #PB_Ignore, #PB_Ignore, 640, 480, "")
ListIconGadget(#myListIconGadget, 0, 0, 640, 480, "Deinstallierbare Programme", 100)
AddGadgetColumn(#myListIconGadget, 1, "Hersteller", 100)
AddGadgetColumn(#myListIconGadget, 2, "Installiert am", 100)
AddGadgetColumn(#myListIconGadget, 3, "Größe", 100)
AddGadgetColumn(#myListIconGadget, 4, "Version", 100)

FF = ReadFile(#PB_Any, Dateiname1) ; Pfad anpassen!

If FF
 
  While Not Eof(FF)
   
    Zeile = ReadString(FF, #PB_Unicode)
    Zeile = ReplaceString(Zeile, #TAB$, #LF$)
    
    Debug StringField(Zeile, 1, " ")
    
   
    AddGadgetItem(#myListIconGadget, -1, Zeile)
   
  Wend 
 
  CloseFile(FF)

Else
 
  Debug "install.txt konnte nicht geladen werden"
 
EndIf
Else
EndIf

Return



Grüsse ................. Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Textfile *.txt Bearbeiten

Beitrag von Kiffi »

ts-soft hat geschrieben:Da sind wohl noch ne menge mehr Fehler :wink:
das steht ohnehin außer Frage. Mein Name ist z. B. falsch geschrieben.
a²+b²=mc²
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Textfile *.txt Bearbeiten

Beitrag von Velindos »

Hallo,
verzeih mir, ist mir wohl so rein gerutscht.

Gruss ................... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Textfile *.txt Bearbeiten

Beitrag von Velindos »

Hallo,
noch was zu Erklärung. Habe einige Probleme mit der Struktur und bin auch abgelenkt, weil daneben noch Access programmiere. Das ist ein Versuch mich in das Programm hineinzuleben. Wie gesagt versuche ich dieses Projekt um PB besser kennenzulernen. Hier Zählt auch die Verständlichkeit etc. eine Rolle, und wie gesagt, hier tue ich mir noch schwer. Mein PB läuft unter Windows7 64.Bit und ich bin zufrieden damit. Anfänglich habe ich mir der leichten Erlernbarkeit noch PureVision dazu gekauft, dies kann man vergessen unter 64-Bit, da läuft nichts rund. So muss ich mich doch durch alles durchlesen, und dazu fehlt mir oft die Zeit.
Also habt Mitleid und bewahrt mich vor dem Kreuz!!!!!!!!!!!!!!

Grüsse ................. Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
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

Re: Textfile *.txt Bearbeiten

Beitrag von ts-soft »

Ein paar Fehler hab ich beseitigt, aber solange der Code mit so Neandertalersprüngen (Gosub) funktioniert, mag
ich mich da nicht weiter reinknien, siehe Dir bitte mal die Proceduren an!

Code: Alles auswählen

;*********************************************************************************
;*                         >>> DateiLesenZeile-9.pb <<<                           *                               
;*                                Version 1.0.x                                  *
;*                             Assembliert by Velindos                           *
;*                                  2010-11-17                                   *
;;*********************************************************************************
; WICHTIG: Damit dieser Text angezeigt werden kann, muss install.txt auf C:\
; vorhanden sein, ist eine feine Sache zum lernen des Datei.txt Handling unter
; PureBasic da ich Anfänger bin. Möchte Anhand dieses Beispiele die Software
; auslesen können und bearbeiten und in einer getrennten Datei speichern.
; ReadFile(File,Ziel) genau wie OpenFile(), nur das wir die Datei diesmal nur lesen
; und anzeigen wollen und nicht erzeugen.
; Hinweis ************************************************************************
; Hinweis 1: Die install.txt ist in UTF-16LE mit Signatur (BOM) gespeichert.
; Destawegen musst Du #PB_Unicode als Extraparameter bei ReadString() mit angeben
; Hinweis 2: Wenn Du die Felder selber auseinanderschnippeln willst, dann schau Dir mal
; CountString() und StringField() an.
EnableExplicit

Global ZZ
ZZ.i=0
Define ZZS.s = "0"
Define Spalte0.i
Define Spalte0= 0
Define Spalte1.i
Define Spalte2.i
Define Spalte3.i
Define Spalte4.i

Enumeration ; Fenster
  #Window_0
  #Window_1
EndEnumeration

;- Gadget Constants
;
Enumeration
  #myListIconGadget = 0
  #String_0
  #String_1
  #String_2
  #String_3
  #String_4
  #String_5
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Text_4
  #Text_5
  #Button_Exit
  #Button_Wait
  #Button_Anzeigen
  #Spalte1
  #Spalte2
  #Spalte3
  #Spalte4
  #Spalte5
EndEnumeration

Dim Ausgabe.s(999)
Define Zeile.s
Define Dateiname1.s
Define Dateiname2.s

Dim T_ID.s(999)
Dim T_Aktuell.s(999)      ;Hilfszeiger
Dim T_Software.s(999)
Dim T_Hersteller.s(999)
Dim T_Datum.s(999)
Dim T_Umfang.s(999)
Dim T_Version.s(999)

Define FF
Define Quit
Define WWE

;Hinweis 2: Wenn Du die Felder selber auseinanderschnippeln willst,
;dann schau Dir mal CountString() und StringField() an.   
;Text$ = ReadString(#Datei [, Flags]) => Liest einen String
;Ergebnis = ReadFile(#Datei, DateiName$) => Öffnet eine existierende Datei
;Ergebnis$ = StringField(String$, Index, Trennzeichen$) => Gibt den Feldinhalt
;Ergebnis = CountString(String$, StringToCount$) => Gibt die Anzahl zurück
;String$ = ReplaceString(String$, SuchString$, ErsatzString$ [, Modus [, StartPosition]]) =>Vorkommen des 'SuchString$'zu finden
;Ergebnis = ReadStringFormat(#Datei) =>Überprüft aktuelle Dateiposition ein BOM (Byte Order Mark) enthält
Dateiname1= "c:\install.txt"
Dateiname2 = "C:\Install_Revision.txt"
Begin:
OpenWindow(#Window_0, 220, 0, 640, 480, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
;ListIconGadget(#myListIconGadget,0, 220, 680, 260, "Deinstallierbare Programme", 100)
;AddGadgetColumn(#myListIconGadget,1, "Hersteller", 100)
;AddGadgetColumn(#myListIconGadget, 2, "Installiert am", 100)
;AddGadgetColumn(#myListIconGadget, 3, "Größe", 100)
;AddGadgetColumn(#myListIconGadget, 4, "Version", 100)

StringGadget(#String_0, 5, 200, 35, 25, "ID")
StringGadget(#String_1, 45, 200, 200, 25, "Software")
StringGadget(#String_2, 250, 200, 140, 25, "Hersteller")
StringGadget(#String_3, 395, 200, 75, 25, "Datum")
StringGadget(#String_4, 475, 200, 75, 25, "Umfang")
StringGadget(#String_5, 555, 200, 75, 25, "Version")
TextGadget(#Text_0, 5, 185, 15, 15, "ID")
TextGadget(#Text_1, 45, 185, 80, 15, "Software")
TextGadget(#Text_2, 250, 185, 80, 15, "Hersteller")
TextGadget(#Text_3, 555, 185, 45, 15, "Version")
TextGadget(#Text_4, 475, 185, 45, 15, "Umfang")
TextGadget(#Text_5, 395, 185, 45, 15, "Datum")
ButtonGadget(#Button_Exit, 570, 15, 55, 30, "Exit")
ButtonGadget(#Button_Wait, 10, 15, 85, 30, "Datei Lesen")
ButtonGadget(#Button_Anzeigen, 110, 15, 85, 30, "Datei Anzeigen")





;OpenWindow(#myWindow, #PB_Ignore, #PB_Ignore, 640, 480, "")


;ListIconGadget(#myListIconGadget, 0, 0, 640, 480, "Deinstallierbare Programme", 100)
;AddGadgetColumn(#myListIconGadget, 1, "Hersteller", 100)
;AddGadgetColumn(#myListIconGadget, 2, "Installiert am", 100)
;AddGadgetColumn(#myListIconGadget, 3, "Größe", 100)
;AddGadgetColumn(#myListIconGadget, 4, "Version", 100)




;Begin Hauptprogramm ***************************************************

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0 : End
        Case #Window_1 : CloseWindow(#Window_1)
      EndSelect
    Case #PB_Event_Gadget
      
      Select EventGadget()
          
        Case #Button_Wait:
          SetActiveWindow(#Window_0)
          Gosub Dateiholen
          
        Case #Button_Anzeigen
          Gosub Kiffi
          SetActiveWindow(#Window_1)   ; Frame 2
          
        Case #Button_Exit: End
          
      EndSelect
  EndSelect
ForEver


; ReadString() ist dazu da, um die verschiedenen Zeichen einer Zeile in der Datei zu
; lesen. Buchstaben und Sonderzeichen werden hier einfach allgemein Zeichen genannt.

; Ich glaube, dass es für einen Einstieg in die File Library reicht, man kann das ganze
; noch mit der FileSytem Library erweitern.


; Cu
; Bluespeed



; 05. Juli 2003: Überarbeitete Sprache und Layout by André Beer - exklusiv für www.purearea.net



Dateiholen:
FF = ReadFile(#PB_Any, Dateiname1)                            ; Pfad anpassen!
ZZ=0

;If ReadFile(0,"C:\Install.txt")                                     ; Wir öffnen die Datei pbtutorial.txt zum Lesen
If FF
  
  While Not Eof(FF)
    
    Zeile = ReadString(FF, #PB_Unicode); Wir lesen die Zeichen auf Zeile
    
    Ausgabe(1)= StringField(Zeile, 1, #TAB$)  ;Software
    Ausgabe(2)= StringField(Zeile, 2, #TAB$)  ;Hersteller
    Ausgabe(3)= StringField(Zeile, 3, #TAB$)  ;Datum
    Ausgabe(4)= StringField(Zeile, 4, #TAB$)  ;Umfang
    Ausgabe(5)= StringField(Zeile, 5, #TAB$)  ;Version
    
    ZZS = Str(ZZ)
    
    StringGadget(#String_0, 5, 200, 35, 25, ZZS)
    StringGadget(#String_1, 45, 200, 200, 25, Ausgabe(1))
    StringGadget(#String_2, 250, 200, 140, 25, Ausgabe(2))
    StringGadget(#String_3, 395, 200, 75, 25, Ausgabe(3))
    StringGadget(#String_4, 475, 200, 75, 25, Ausgabe(4))
    StringGadget(#String_5, 555, 200, 75, 25, Ausgabe(5))
    
    Zeile = ReplaceString(Zeile, #TAB$, #LF$) ; Vorkommen des 'SuchString$'zu finden
    AddGadgetItem(#myListIconGadget, -1, Zeile)
    ;Debugen
    Debug StringField(Zeile, 1, " ") ;Zeigen uns Debuger an
    Debug StringField(Zeile, 3,  " ") ;Zeigen uns Debuger an
    
    
    
    ;Delay(3000); Wartet 3 Sekunden is a Thread
    
    ZZ  = ZZ+1
    
    
    
    ;MessageRequester("Text","Text: "+Ausgabe(1),0)                    ; Nun zeigen wir die Zeichen an
  Wend
  
  CloseFile(FF)
  
Else
  ; sein muss, da PB sie auch automatisch schließt.   
  
  
  Debug "install.txt konnte nicht geladen werden"
  MessageRequester("Fehler","Konnte die Datei nicht öffnen.",0)   ; Fehlermeldung
  
EndIf                                                              ; Ende der Abfrage
Return



Kiffi:
Define Format

If OpenWindow(#Window_1, #PB_Ignore, #PB_Ignore, 640, 480, "")
  ListIconGadget(#myListIconGadget, 0, 0, 640, 480, "Deinstallierbare Programme", 100)
  AddGadgetColumn(#myListIconGadget, 1, "Hersteller", 100)
  AddGadgetColumn(#myListIconGadget, 2, "Installiert am", 100)
  AddGadgetColumn(#myListIconGadget, 3, "Größe", 100)
  AddGadgetColumn(#myListIconGadget, 4, "Version", 100)
  
  FF = ReadFile(#PB_Any, Dateiname1) ; Pfad anpassen!
  
  If FF
    Format = ReadStringFormat(FF)
    
    If Format <> #PB_UTF8 Or Format <> #PB_Unicode ; nicht unterstütze Formate als Ascii behandeln
      Format = #PB_Ascii
    EndIf
    While Not Eof(FF)
      
      Zeile = ReadString(FF, Format)
      Zeile = ReplaceString(Zeile, #TAB$, #LF$)
      
      Debug StringField(Zeile, 1, " ")
      
      
      AddGadgetItem(#myListIconGadget, -1, Zeile)
      
    Wend
    
    CloseFile(FF)
    
  Else
    
    Debug "install.txt konnte nicht geladen werden"
    
  EndIf
Else
EndIf

Return



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
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Textfile *.txt Bearbeiten

Beitrag von Velindos »

Hallo,
danke, das mit den Prozeduren habe ich probiert, kam aber auf keinen Nenner. Sprich habe Kiffi Beispiel genommen und versucht diese als Prozedur einzubinden. Dann verlangte PB plötzlich eine Variable, diese habe ich mir noch aus den Ärmel gesaugt, half aber auch nichts. Zum Verständniss ich konnte die Prozedur nicht richtigt aufrufen.

Code: Alles auswählen

Global A.s



Procedure.s Kifi(String$)
  
  

EnableExplicit
#myWindow = 0
#myListIconGadget = 0

OpenWindow(#myWindow, #PB_Ignore, #PB_Ignore, 640, 480, "")
ListIconGadget(#myListIconGadget, 0, 0, 640, 480, "Deinstallierbare Programme", 100)
AddGadgetColumn(#myListIconGadget, 1, "Hersteller", 100)
AddGadgetColumn(#myListIconGadget, 2, "Installiert am", 100)
AddGadgetColumn(#myListIconGadget, 3, "Größe", 100)
AddGadgetColumn(#myListIconGadget, 4, "Version", 100)

Define Zeile.s
Define FF
Define Quit
Define WWE

FF = ReadFile(#PB_Any, String$) ; Pfad anpassen!

If FF
 
  While Not Eof(FF)
   
    Zeile = ReadString(FF, #PB_Unicode)
    Zeile = ReplaceString(Zeile, #TAB$, #LF$)
    
    Debug StringField(Zeile, 1, " ")
    
   
    AddGadgetItem(#myListIconGadget, -1, Zeile)
   
  Wend 
 
  CloseFile(FF)

Else
 
  Debug "install.txt konnte nicht geladen werden"
 
EndIf

Repeat
 
  WWE = WaitWindowEvent()
 
  Select WWE
    Case #PB_Event_CloseWindow
      Quit = #True
  EndSelect
 
Until Quit = #True


EndProcedure
a = Kifi("c:\install2.txt")


Bin mir nicht sicher könnte auch noch an meinen Verständnis für die Hauptprogrammführung sein. Kam auch mit der WindowsEvent nicht zurecht und habe daher den uralten weg vorgezogen.

Sorry, werde mich bessern ....................Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Textfile *.txt Bearbeiten

Beitrag von Velindos »

Hallo,
suche für diese Problematik Downloadfähige Beispiele, vielleicht weißt du welche.

Gruss ................ Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten