Autor Beitrag
iltschii
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Do 08.05.03 17:58 
Hallöchen!

Habe mit meinem SG folgendes Problem:
Mein SG wird Zeilenweise ausgelesen und in ein Memofeld übertragen,aber hinter jeder ausgelesenen Zeile soll ein Komma gesetzt werden und nach dem letzten Eintrag im SG dann aber net mehr. Das Ganze geht sicher über ne if-Anweisung nur ich weiß net wie, vielleicht hat ja hier jemand einen Tip.


Vielen Dank schonmal

Gruß iltschii
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 08.05.03 18:00 
Wie sieht denn Dein bisheriger Code aus?

P.S.: Schon der dritte Thread mit dem Titel "StringGrid" von Dir. Du solltest wirklich mehr Details in den Thread-Titel übernehmen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
iltschii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Do 08.05.03 18:16 
Hallo Peter!


*Lach* ja, irgendwie fällt mir da wohl nix besseres ein, ist doch 'LUSTIG' oder???

Naja nun zur Sache:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
 s := 'CREATE TABLE ' + StringGrid3.Cells[0,1] + ' (';

  for i := 1 to StringGrid3.RowCount - 1 do begin

    if LowerCase(StringGrid3.Cells[2,i]) = 'integer' then
       s := s + StringGrid3.Cells[1,i] + ' ' + StringGrid3.Cells[2,i]   +  ','

   else
       s := s + StringGrid3.Cells[1,i] + ' ' + StringGrid3.Cells[2,i] + '('
              + StringGrid3.Cells[3,i] + ')'     + ','
  end;

  s := s + ' )';


Du siehst schon, dass das eine SQL Anweisung wird.
So diese beiden Kommas dürfen halt net immer gesetzt werden, sondern nur bis zum vorletzten Eintrag der Zeile. Nach dem letzten Eintrag soll halt die Klammer geschlossen werden
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 08.05.03 18:28 
Könntest Du nicht einfach ein Delete(s,Length(s)-1,1) hinterherschieben? Der löscht dann das letzte Komma.

Oder so:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
 s := 'CREATE TABLE ' + StringGrid3.Cells[0,1] + ' (';

  for i := 1 to StringGrid3.RowCount - 1 do begin

    if LowerCase(StringGrid3.Cells[2,i]) = 'integer' then
       s := s + StringGrid3.Cells[1,i] + ' ' + StringGrid3.Cells[2,i]

   else
       s := s + StringGrid3.Cells[1,i] + ' ' + StringGrid3.Cells[2,i] + '('
              + StringGrid3.Cells[3,i] + ')';

    if i< StringGrid3.RowCount-1 do s:=s+',';
  end;

  s := s + ' )';

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
iltschii Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Do 08.05.03 18:45 
ja danke, supi, ich werds mal so probieren!
Ansonsten meld ich mich nochmal.


Gruß iltschii