Autor |
Beitrag |
LDMatrix17
      
Beiträge: 73
xXpProOxsP2x
Flash5~Flash7 MX 2004 Prof.~Flash 8 Prof.~Delphi 7 prof.&HTML
|
Verfasst: Sa 09.09.06 19:17
hiii @ all friends!
erst mal gruß an alle!!!
Also ich wollte eine .CSV Datei in StringGrid laden, da ich ganz neugering bin weiß nicht wo ich anfangen soll. Zeilen und Spalten müssen Automatisch erzeigt werden.
soO weit weiß ich :
In eine CSV Dateien sind die zeilen per Semikolon getrennt,
man braucht eine Stringlist um die Datei zu laden und
dann braucht man eine For do Schleife um die stringlist durch zu gehen und die werte in StringGrid ein zu tragen...
ich kann mir noch vorstellen wie das alles weiter geht aber weiß nicht wo ich anfangen soll. Ít would be very gratefull, wenn mir jemand schritt für schritt erklären kann.
gruß
Christian
_________________ ~sOm3!~gUrLs!~sOm3!~dAyS!~L!f3~iS!~nOT!~bOriNg!!~
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Sa 09.09.06 20:36
Hallo Christian
guck dir mal folgendes an:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| cslSL := nil; LineSL := nil; try csvsl := TStringList.Create; LineSL: TSringList.Create; sl.LoadFromFile(...); sl.Delimiter := ';'; for i := 0 to anzZeilen do begin LineSL.DelimitedText := sl[i]; StringGrid.Cells[..., ...] := ...; end; finally csvSL.Free; LineSL.Free; end; |
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
LDMatrix17 
      
Beiträge: 73
xXpProOxsP2x
Flash5~Flash7 MX 2004 Prof.~Flash 8 Prof.~Delphi 7 prof.&HTML
|
Verfasst: So 10.09.06 16:47
hey bitte!!!
Ich blicks gar nichts hier!!
kannst du vielleicht noch nähr erklären, bitte.
mgf
Christian
Edit:
Meine CSV Datei sieht soO aus.
Name;Vorname;Strasse und Nr;
Test;Test1;Test1 12;
test T;test M;test,12;
Nun will Ich alle Namen, sowie alle Vornamen und adressen in eine Zeile StringGrids ausgeben..
ich bekomme irgendwie nicht hin.
Bitte hilf mir :^^
_________________ ~sOm3!~gUrLs!~sOm3!~dAyS!~L!f3~iS!~nOT!~bOriNg!!~
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: So 10.09.06 21:23
Ich hab dir doch schon n fast lauffähigen Code gegeben. Was verstehst du denn nicht?
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 10.09.06 21:28
dann nimm doch dies hier:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm1.Button1Click(Sender: TObject); var sl: tStringList; i,j: integer; s: string; begin sl := tStringlist.Create; try sl.LoadFromFile('c:\temp\test.txt'); for i := 0 to sl.count - 1 do begin s := sl.Strings[i]; sg.Cells[1,i+1] := copy(s,1,pos(';',s)-1); delete(s,1,pos(';',s)); sg.cells[2,i+1] := copy(s,1,pos(';',s)-1); delete(s,1,pos(';',s)); sg.cells[3,i+1] := copy(s,1,pos(';',s)-1); end; finally sl.Free; end; end; |
Anmerkung: SG = StringGrid
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: So 10.09.06 21:33
Mein Code funktioniert aber auch, wenns mehr als 3 Spalten sind...
Was aber nix dran ändert, dass man sich mit Code beschäftigen sollte, bevor man behauptet "Ich blicks gar nichts hier!!"...
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 10.09.06 23:32
@r2c2: ist doch egal, ist sein problem. seine HP funktioniert ja auch nicht... 
|
|
LDMatrix17 
      
Beiträge: 73
xXpProOxsP2x
Flash5~Flash7 MX 2004 Prof.~Flash 8 Prof.~Delphi 7 prof.&HTML
|
Verfasst: Mo 11.09.06 18:25
r2c2 hat folgendes geschrieben: | Mein Code funktioniert aber auch, wenns mehr als 3 Spalten sind...
Was aber nix dran ändert, dass man sich mit Code beschäftigen sollte, bevor man behauptet "Ich blicks gar nichts hier!!"...
mfg
Christian |
hey also, du kennst dich ja viel mehr aus als ich und du kriegst schnell hin.
guck dir deine Code noch mal genau an bitte, da sind noch fehler drinn und nicht vollständig. Wie soll bitte einer, der gerade Delphi lernet damit was anfangen?
Ich habe nicht gegen dich, du hast schnell geholfen aber ehrlich gesagt hab echt nicht kapiert..
trotzdem Danke
MFG
Christian
Edit: hab jetzt kapiert 
_________________ ~sOm3!~gUrLs!~sOm3!~dAyS!~L!f3~iS!~nOT!~bOriNg!!~
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Mo 11.09.06 18:37
LDMatrix17 hat folgendes geschrieben: |
guck dir deine Code noch mal genau an bitte, da sind noch fehler drinn und nicht vollständig.
|
Das is mir schon klar. Ich hab ja auch extra "Pseudocode" dazugeschrieben...
Zitat: |
Wie soll bitte einer, der gerade Delphi lernet damit was anfangen?
|
Indem er sich damit beschäftigt und, wenn etwas unklar ist, eine *konkrete* Frage stellt. "ich blicks net" heißt für mich "ich hab mich nicht damit beschäftigt, mach du für mich die Arbeit". Wenn die Frage aber heißt "Was machst du in Zeile 11? Hab das net verstanden", dann erklär ich das gerne(und ich schätz mal ich bin nicht der einzige der das so handhabt). Ich helfe gerne, ich schreibe aber nicht anderer Leute Programme...
Zitat: |
Edit: hab jetzt kapiert  |
Und... war doch gar nicht so schwer... Wenn nochwas unklar is: Einfach fragen...
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
Nagetier
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 20.04.07 15:16
r2c2 hat folgendes geschrieben: | Hallo Christian
guck dir mal folgendes an:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| cslSL := nil; LineSL := nil; try csvsl := TStringList.Create; LineSL: TSringList.Create; sl.LoadFromFile(...); sl.Delimiter := ';'; for i := 0 to anzZeilen do begin LineSL.DelimitedText := sl[i]; StringGrid.Cells[..., ...] := ...; end; finally csvSL.Free; LineSL.Free; end; |
mfg
Christian |
Ich hätte dazu mal n paar kleinere Fragen, da ich mich nur wenig mit dieser Materie auskenne...
1. Was bedeutet das "nil" am Anfang, bzw welche Funktion besitzt dieses?
Und wie ist dieser Abschnitt
LineSL.DelimitedText := sl[i];
StringGrid.Cells[..., ...] := ...;
zu verstehen?
muss ich bei StringGrid.Cells sämtliche Zellen eintragen, oder wie muss ich soetwas behandeln?
Danke schonmal für die Hilfe, wie gesagt kenne mich mit improtieren nur wenig aus 
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Fr 20.04.07 15:27
Hallo,
nil ist ein Wert, den man einem Zeiger zuweisen kann, sodass dieser auf 0 (also sozusagen nirgendwohin) zeigt, also dass kein Ziel festgelegt ist.
Bei Stringgrid.Cells[x, y] := ... musst du jede Zelle einzeln behandeln.
Silas
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Nagetier
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 20.04.07 15:44
achso, ok danke...
Wenn ich allerdings jede Zelle einzeln betitteln muss wird das bei einem akutellen csv Datenblatt relativ schwer, da es ca 120 Zeilen lang und gut 10 Spalten breit ist, gibt es keine einfachere Möglichkeit dafür?
|
|
Silas
      
Beiträge: 478
Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
|
Verfasst: Fr 20.04.07 15:51
Naja, so aufwändig ist das nicht:
Delphi-Quelltext 1: 2: 3: 4:
| for i := 1 to 120 do begin for j := 1 to 10 do SG.Cells[i, j] := end; |
120 und 10 musst du halt durch deine Zahlen ersetzen.
_________________ Religionskriege sind nur Streitigkeiten darüber, wer den cooleren imaginären Freund hat
|
|
Nagetier
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 20.04.07 16:40
Wie also müsste der Code als ganzes aussehen, damit dieser Funktioniert, ich bekomme immer gesagt, dass es undefinierte Bereiche etc. gibt :-/
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Fr 20.04.07 16:52
Zu den Fehlermeldzungen siehe:
r2c2.weingut-rehn.de...-Fehlermeldungen.htm
Und ansonsten solltest du dir mal ein Gundlagen-Tutorial angucken. Siehe hier: www.christian-stelzm...rials_crashkurs.html
BTW: Sollte man nicht eigentlich für ne neue Frage auch n neuen Thread aufmachen..?
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
Nagetier
Hält's aus hier
Beiträge: 12
|
Verfasst: Fr 20.04.07 16:55
www.delphi-forum.de/...rid+laden_72124.html
Da hab ich ja auch ein neues, aber es antwortet keiner dadrauf :-/
|
|