AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeiger TList

Ein Thema von inriz · begonnen am 18. Okt 2005 · letzter Beitrag vom 21. Okt 2005
 
inriz

Registriert seit: 18. Okt 2005
15 Beiträge
 
#1

Zeiger TList

  Alt 18. Okt 2005, 12:57
Delphi-Quellcode:
function TForm1.GetTokenList(sCommand, sSeparator : string; tlToken : TListPtr) : Integer;
var
  sTmp : string;
  sCurrentToken : string;
  iPos : Integer;
  iResult : Integer; // anzahl der token
  iRest : Integer;
  pTmp : Pointer;
begin
  iResult := 0;
  sTmp := sCommand;
  
  iPos := Pos(sSeparator, sTmp);
  if iPos > 0 then
  begin
    repeat
      iRest := Length(sTmp) - iPos;

      sCurrentToken := LeftStr(sTmp, iPos - 1); // hier können laufzeitfehler entstehen ...
      pTmp := Pointer(sCurrentToken);
      sTmp := RightStr(sTmp, iRest);
      iPos := Pos(sSeparator, sTmp);
      tlToken.Add(pTmp);
      Inc(iResult);
    until not (iPos > 0);

    if Length(sTmp) > 0 then
    begin
      pTmp := Pointer(RightStr(sTmp, Length(sTmp)));
      tlToken.Add(pTmp);
      Inc(iResult);
    end;
  end;
  Result := iResult;
end;

{ @@@@ Borland kram}

procedure TForm1.BtnGetTokenClick(Sender: TObject);
var
  sStr : string;
  sIndex : Integer;
  lToken : TList;
  iLoop : Integer;
  sToken : string;
  pTmp : Pointer;
begin
  sStr := EdtText.Text;
  lToken := TList.Create;
  
  if Length(sStr) > 0 then
  begin
    sIndex := GetTokenList(sStr, ':', @lToken);
    if sIndex > 0 then
    begin
      for iLoop := 0 to lToken.Count - 1 do
      begin
        pTmp := lToken.Items[iLoop];
        sToken := PChar(pTmp);
        MemResult.Lines.Add(sToken);
      end;
    end;
  end;
end;
hi!

der string der gettokenlist übergeben wird beinhaltet folgenden wert : 12345:foo:bar
die funktion soll nun diesen wert durch den separator : splitter und alle token in eine liste schreiben
diese liste wird als zeiger übergeben ...

das programm lässt sich ausführen, jedoch bekomme ich nicht die werte im memo angezeigt die ich wollte sondern
nur: online
online
onl

könnt ihr mir helfen? welche grundlegenden dinge habe ich bei den zeigeroperationen gemacht?

gruß inriz
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz