Hallo,
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54:
| function NumToken(aString: String; SepChar: Char):Byte; var RChar : Char; StrLen : Byte; TNum : Byte; TEnd : Byte;
begin if SepChar = '#' then begin RChar := '*' end else begin RChar := '#' end; StrLen := Length(aString); TNum := 0; TEnd := StrLen; while TEnd <> 0 do begin Inc(TNum); TEnd := Pos(SepChar,aString); if TEnd <> 0 then begin aString[TEnd] := RChar; end; end; Result := TNum; end;
function GetToken(aString: String; SepChar: Char; TokenNum: Byte):String; var Token : String; StrLen : Byte; TNum : Byte; TEnd : Byte;
begin StrLen := Length(aString); TNum := 1; TEnd := StrLen; while ((TNum <= TokenNum) and (TEnd <> 0)) do begin TEnd := Pos(SepChar,aString); if TEnd <> 0 then begin Token := Copy(aString,1,TEnd-1); Delete(aString,1,TEnd); Inc(TNum); end else Token := aString; end;
if TNum >= TokenNum then Result := Token else begin MessageDlg('Fehler: Tokennummer(' + aString + ' )ist größer als token !',mtError, [mbok], 0); Result := 'Fehler: Tokennummer(' + aString + ' )ist größer als token !'; end; end; |
so nun wollte ich einen DelToken schreiben. Aber ich bekmme einfach keinen hin.Mein letzer versuch war:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function DelToken(aString: String; SepChar: Char; TokenNum: Byte):String; var str:String; begin str:=GetToken(aString,SepChar,TokenNum);
// ShowMessage(INtTostr(StrLen(Pchar(str)))+ '\' + str + '\' + INtToStr(Pos(str,aString)));
delete(aString, Pos(str,aString)-1, Pos(str,aString) + StrLen(Pchar(str)) );
result:=aString; end; |
Aber es hat auch nicht funktioniert.
dabei weiß ich nicht warum
kann mir jemmand so eine funktion schreiben ?
Danke !
MFG
mimi