![]() |
Re: Datum mit Datum austauschen
Hallo,
sl: TStringList;
Delphi-Quellcode:
-> in sl.Items hast du jetzt 4 Strings
sl.Delimiter:= ' ';
sl.DelimitedText:= 'Das ist ein Text'; Heiko |
Re: Datum mit Datum austauschen
Eher
Delphi-Quellcode:
sl: TStrings;
sl := TStringList.Create; sl.Delimiter:= ' '; sl.DelimitedText:= 'Das ist ein Text'; |
Re: Datum mit Datum austauschen
Ha,
auch ein Fehler DelimiteText -> DelimitedText ;) Heiko |
Re: Datum mit Datum austauschen
Sch... Tippfehler
BTW. .StrictDelimiter := False sollte reichen |
Re: Datum mit Datum austauschen
Hallo und danke für eure Antworten.
Jetzt muss ich das nur noch zusammen bekommen. freundliche Grüße Aaron |
Re: Datum mit Datum austauschen
Hallo
ich habs mit euren Beispielen nicht hinbekommen, habe ein Beispiel gefunden mit dem ich schonmal aus einem String Zahlen extrahieren kann:
Delphi-Quellcode:
Nun müßte ich nur noch wissen wie ich daraus wieder ein Datum machen kann.
type
TCharSet = set of Char; function StripNonConforming(const S: string; const ValidChars: TCharSet): string; var DestI: Integer; SourceI: Integer; begin SetLength(Result, Length(S)); DestI := 0; for SourceI := 1 to Length(S) do if S[SourceI] in ValidChars then begin Inc(DestI); Result[DestI] := S[SourceI] end; SetLength(Result, DestI) end; function StripNonNumeric(const S: string): string; begin Result := StripNonConforming(S, ['0'..'9']) end; procedure TForm3.Button2Click(Sender: TObject); begin showmessage(StripNonConforming('TEST TEST 12.11.2008 Test Test',['0'..'9'])); end; Freundliche Grüße Aaron |
Re: Datum mit Datum austauschen
Hallo,
ich habe es nun so gemacht, leider funktioniert das nicht sobald auch nur ein Punkt im String steht. Wenn nur ein Datum drinnen steht funktioniert es.
Delphi-Quellcode:
Was mache ich falsch oder bin ich auf einem komplett falschen Weg?
sl := TStringList.Create;
sl.DelimitedText:= StringGrid1.Cells[1, StringGrid1.Row]; sl.DelimitedText := StripNonConforming(sl.DelimitedText, ['0'..'9','.']); if StrToDate(sl.DelimitedText) = Date then begin StringGrid1.Cells[1, StringGrid1.Row] := StringReplace(StringGrid1.Cells[1, StringGrid1.Row],sl.DelimitedText,StringGrid1.Cells[2, StringGrid1.Row],[rfReplaceAll, rfIgnoreCase]); Freundliche grüße Aaron |
Re: Datum mit Datum austauschen
Hallo,
sorry, ich weiß es ist unhöflich nach so kurzer Zeit zu pushen, leider brauche ich ganz, ganz superdringend eine Antwort bzw. Hilfe. Habe auch hiermit rumprobiert, leider ohne Ergolg:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var d,d1: String; S: TDateTime; begin d:=(StripNonConforming('TEST TEST 12.11.2055 Test.',['0'..'9'])); d1:=Copy(d,1,2)+'.'+Copy(d,3,2)+'.'+Copy(d,5,2); s:=StrToDate(d1); ShowMessage(FormatDateTime('ddmmyyyy',s)); end; Zitat:
Freundliche Grüße Aaron |
Re: Datum mit Datum austauschen
Hilfe !!!
:-) |
Re: Datum mit Datum austauschen
Ich hätte da mal einen ganz anderen vorschlag. Im Kern benötigst du ja nur die Position eines in einem String vorkommenden Datums, damit kannst du dann das alte Datum entfernen und ein neues einfügen.
Ersetze in einer Kopie deiner Zeichenkette alle numerischen Zeichen durch ein einheitliches Zeichen, z.Bsp. "0". Dann kommt an der Stelle, wo vorher das Datum stand etwas heraus wie: "00.00.0000". Danach kannst du dann ganz einfach suchen mit
Delphi-Quellcode:
Durch
iPos := Pos('00.00.0000', sKopieVonMeinString);
Delphi-Quellcode:
löschst du das alte Datum und mit
System.Delete(sMeinString, iPos, 10)
Delphi-Quellcode:
fügst du das neue Datum an der gleichen Stelle ein.
System.Insert(sDasDatum, sMeinString, iPos)
Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz