Autor Beitrag
LDMatrix17
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 73

xXpProOxsP2x
Flash5~Flash7 MX 2004 Prof.~Flash 8 Prof.~Delphi 7 prof.&HTML
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Sa 09.09.06 20:36 
Hallo Christian :wave:

guck dir mal folgendes an:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
  // Pseudocode:
  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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 73

xXpProOxsP2x
Flash5~Flash7 MX 2004 Prof.~Flash 8 Prof.~Delphi 7 prof.&HTML
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: 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



BeitragVerfasst: So 10.09.06 21:28 
dann nimm doch dies hier:

ausblenden 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: 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



BeitragVerfasst: So 10.09.06 23:32 
@r2c2: ist doch egal, ist sein problem. seine HP funktioniert ja auch nicht... :wink:
LDMatrix17 Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 73

xXpProOxsP2x
Flash5~Flash7 MX 2004 Prof.~Flash 8 Prof.~Delphi 7 prof.&HTML
BeitragVerfasst: Mo 11.09.06 18:25 
user profile iconr2c2 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: Mo 11.09.06 18:37 
user profile iconLDMatrix17 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



BeitragVerfasst: Fr 20.04.07 15:16 
user profile iconr2c2 hat folgendes geschrieben:
Hallo Christian :wave:

guck dir mal folgendes an:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
  // Pseudocode:
  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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: 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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 478

Windows XP Home
Delphi 2005, RAD Studio 2007, MASM32, FASM, SharpDevelop 3.0
BeitragVerfasst: Fr 20.04.07 15:51 
Naja, so aufwändig ist das nicht:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
for i := 1 to 120 do begin
  for j := 1 to 10 do
    SG.Cells[i, j] := //hier kommt der Text rein(am besten ein Array)
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



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 324
Erhaltene Danke: 2

Linux

BeitragVerfasst: 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



BeitragVerfasst: 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 :-/