Einzelnen Beitrag anzeigen

GroHae

Registriert seit: 19. Apr 2007
Ort: Nabburg
83 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Zugriffsverletzung bei Schleife

  Alt 16. Apr 2009, 10:55
Zitat:
Irgendwie machst Du aus einem String 'nen PChar und beginnst immer mit der 2. Position, die Du dann per Dec auf die erste Position setzt. Nun gehst Du zeichenweise durch den PChar um den : zu suchen. Wenn WordPos = 0, wird Result um p^ erhöht
und dann wird p erhöht, bis p^ = : ist. Dann wird p^ erhöht und solange weitergemacht, bis p^ = : ist. Das sieht mir so aus, als würde das jetzt weitergehen, bis der 2. Doppelpunkt gefunden wird, es sei denn WordPos wird vorher 0.
Irgendwie verstehe ich das nicht so recht.
Stimmt mir geht's ähnlich.

wie das mit
    Inc(p); geht ist mir nicht klar



Aus meiner Toosammlung:

Delphi-Quellcode:
function GetTeilString(S: string; Pos: integer; Trenner: string; TrimAll:boolean=false): string;
var
  i, j: integer;
  S2: string;
begin
  j := 0;
  S2 := '';
  if S <> 'then
  begin
    if S[Length(S)] <> Trenner then
      S := S + Trenner;
    // 31.03.2009: Noch ein Sicherheitsabfang
    S := S + ' ' + Trenner;
    { Beginn suchen }
    for i := 1 to (pos - 1) do
    begin
      j := j + 1;
      while s[j] <> Trenner do
        j := J + 1
    end;
    { Wert setzen }
    j := j + 1;
    while s[j] <> Trenner do
    begin
      S2 := S2 + S[j];
      j := J + 1
    end;
  end;
  Result := TrimRight(S2);
  if TrimAll then
    Result := Trim(S2);
end;
nicht so elegant wie deine Lösung, aber ich arbeite nicht gerne mit PChar und ^
Grüße

Thomas
  Mit Zitat antworten Zitat