Avatar billede knaste Nybegynder
15. oktober 2006 - 22:13 Der er 6 kommentarer og
1 løsning

Adskille string?

Hej,

Jeg har en stringlist, som ser saadan ud:

1,3,43
2,32,67
3,443,78
4,56,23
5,23,443

Hvordan kan jeg adskille tallene i linierne ved kommaet,
saaledes, at jeg kan saette tallene efter det foerste komma i memo1,

3
32
443
56
23

og tallene efter det andet komma i memo2?

43
67
78
23
443

Tallene foer det foerste komma skal ignoreres.

Tak paa forhaand!
knaste
Avatar billede kroning Nybegynder
15. oktober 2006 - 23:41 #1
var
  i,a,b : integer;
begin
    for i:=0 to s.Count-1 do
  begin
      a:=Pos(',',s[i])+1;
    b:=PosEx(',',s[i],a);
      Memo1.Lines.Add(Copy(s[i],a,b-a));
    Memo2.Lines.Add(Copy(s[i],b+1,MaxInt));
    end;
end;
Avatar billede kroning Nybegynder
15. oktober 2006 - 23:41 #2
Husk StrUtils i din uses aht. PosEx
Avatar billede kroning Nybegynder
15. oktober 2006 - 23:45 #3
Eller måske således:

var
  i : integer;
  t : TStringList;
begin
  t:=TStringList.Create;
  for i:=0 to s.Count-1 do
  begin
      t.Clear;
    ExtractStrings([','],[],PChar(s[i]),t);
    Memo1.Lines.Add(t[1]);
    Memo2.Lines.Add(t[2]);
  end;
  t.Free;
end;
Avatar billede knaste Nybegynder
16. oktober 2006 - 07:23 #4
Jeg proever den sidste, men den fejler i linien:
ExtractStrings([','],[],PChar(s[i]),t);

Fejlen er: Listindex overskrider maximum (1).

Det virker, hvis jeg omskriver linien til:
ExtractStrings([','],[],PChar('11,22,33'),t);

Tallene i min originale stringlist ser ud til at vaere OK..?
Avatar billede kroning Nybegynder
16. oktober 2006 - 08:40 #5
Jeg går ud fra at din stringlist som i koden hedder s indeholder 5 linier (0-4) nemlig disse linier:
1,3,43
2,32,67
3,443,78
4,56,23
5,23,443
Avatar billede knaste Nybegynder
16. oktober 2006 - 19:50 #6
Jeg havde free'et min stringlist s et andet sted i programmet, sorry...

Det virker nu, laeg et svar.
Avatar billede kroning Nybegynder
17. oktober 2006 - 07:48 #7
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester