Seite 1 von 1

[Erledigt] CSV Datei erstellen

Verfasst: 11.03.2012 16:28
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.

Re: CSV Datei erstellen

Verfasst: 11.03.2012 16:37
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.

Re: CSV Datei erstellen

Verfasst: 11.03.2012 16:43
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.

Re: CSV Datei erstellen

Verfasst: 11.03.2012 16:56
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

Re: CSV Datei erstellen

Verfasst: 11.03.2012 17:07
von Pure_Beginner
Hallo RSBasic,

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

Grüße
Pure_Beginner