[Erledigt] CSV Datei erstellen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

[Erledigt] CSV Datei erstellen

Beitrag von Pure_Beginner »

Hallo zusammen,

hab mal wieder ein Problem mit Tabellen.
Das ListIconGadget das ich erstellt habe möchte ich als .csv Datei speichern und auch wieder einlesen können.
Hab schon gestöbert, finde aber keinen Ansatz.
Hat jemand Ahnung wie das geht oder wo das steht ?

Für eure Hilfe wäre ich Dankbar.
Zuletzt geändert von Pure_Beginner am 13.03.2012 21:14, insgesamt 1-mal geändert.
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: CSV Datei erstellen

Beitrag von RSBasic »

Ist doch eigentlich ganz einfach.
Du machst eine Schleife für alle Zeilen und Spalten und speicherst jede Zelle in der Datei ab, so dass es etwa so aussieht:

Code: Alles auswählen

E1S1;EIS2;E1S3
E2S1;E2S2;E2S3
E3S1;E3S2;E3S3
E4S1;E4S2;E4S3
51S1;E5S2;51S3
(E = Eintrag, S = Spalte)

Und beim Einlesen etwa so:

Code: Alles auswählen

ReadFileString$ = ReadString(...)
Column1$ = StringField(ReadFileString$,1,";")
Column2$ = StringField(ReadFileString$,1,";")
Column3$ = StringField(ReadFileString$,1,";")
addgadgetitem(#Gadget, -1, Column1$+chr(10)+Column2$+chr(10)+Column3$)
PS: Ist kein lauffähiger Code. Müsste aber kein Problem sein, es umzusetzen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: CSV Datei erstellen

Beitrag von Pure_Beginner »

Hallo RSBasic,

Besten Dank für deine schnelle Antwort.

Leider bin ich ziemlicher Anfänger und etwas durch VB verdorben (Verwöhnt).

Könntest du mir etwas genauer beschreiben wie das Speichern funktioniert oder einen Link mit Beispiel nennen.

Erstmal Danke für deine Mühe.
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: CSV Datei erstellen

Beitrag von RSBasic »

Code: Alles auswählen

EnableExplicit

Define EventID
Define a

Procedure SaveItems()
  Protected a
  Protected TotalItems
  
  TotalItems = CountGadgetItems(1)
  
  If CreateFile(1,GetTemporaryDirectory()+"OwnCSV.csv")
    For a=0 To TotalItems-1
      WriteStringN(1,GetGadgetItemText(1,a,0)+";"+GetGadgetItemText(1,a,1)+";"+GetGadgetItemText(1,a,2))
    Next
    
    CloseFile(1)
  EndIf
  
  RunProgram(GetTemporaryDirectory()+"OwnCSV.csv")
  
EndProcedure

Procedure LoadItems()
  Protected ReadFileString$
  Protected Column1$
  Protected Column2$
  Protected Column3$
  
  If ReadFile(1,GetTemporaryDirectory()+"OwnCSV.csv")
    While Eof(1)=0
      ReadFileString$ = ReadString(1,0)
      Column1$ = StringField(ReadFileString$,1,";")
      Column2$ = StringField(ReadFileString$,2,";")
      Column3$ = StringField(ReadFileString$,3,";")
      
      AddGadgetItem(1,-1,Column1$+Chr(10)+Column2$+Chr(10)+Column3$)
    Wend
    
    CloseFile(1)
  EndIf
  
EndProcedure

If OpenWindow(0,0,0,640,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ListIconGadget(1,10,10,WindowWidth(0)-20,WindowHeight(0)-50,"Spalte 1",200,0)
  AddGadgetColumn(1,1,"Spalte 2",200)
  AddGadgetColumn(1,2,"Spalte 3",200)
  ButtonGadget(2,WindowWidth(0)-630,WindowHeight(0)-30,200,20,"1. CSV-Datei erstellen",0)
  ButtonGadget(3,WindowWidth(0)-420,WindowHeight(0)-30,200,20,"2. ListIconGadget leeren",0)
  ButtonGadget(4,WindowWidth(0)-210,WindowHeight(0)-30,200,20,"3. CSV-Datei laden",0)
  
  For a=1 To 10
    AddGadgetItem(1,-1,"Eintrag A"+Str(a)+Chr(10)+"Eintrag B"+Str(a)+Chr(10)+"Eintrag C"+Str(a),0,0)
  Next
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID=#PB_Event_Gadget
      Select EventGadget()
        Case 2
          SaveItems()
        Case 3
          ClearGadgetItems(1)
        Case 4
          LoadItems()
      EndSelect
    EndIf
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Pure_Beginner
Beiträge: 247
Registriert: 29.09.2011 21:49
Computerausstattung: i7 9XX 4000 MHZ / 12 GB RAM / Win 8.1 64Bit / Win 7 64Bit
Wohnort: Brühl

Re: CSV Datei erstellen

Beitrag von Pure_Beginner »

Hallo RSBasic,

danke für die schnelle Hilfe,
werde mich gleich drüber hermachen.

Grüße
Pure_Beginner
PureBasic 5.30 Beta 3 (X64/X86) | Win 8 (64) Pro / Win 7 (64) Pro | Es ist der Hobbyist[/col
Antworten