Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
<p>Hallo Bine,<br>
<br>
dafür gibt es mehrere Möglichkeiten.<br>
1. Du entfernst die Punkte aus dem Datumstring oder<br>
2. Du zerlegst das Datum in seine Bestandteile und baust aus diesen Deinen String zusammen.<br>
<br>
zu 1.<br>
<br>
<pre>
function PunktAusDatum(const aTextDatum:String):String;
var i:Integer;
begin
Result:='';
for i:=1 to Length(aTextDatum) do if (aTextDatum[i]<>'.') then
Result:=Result+aTextDatum[i]);
end; // PunktAusDatum
</pre>
<br>
zu 2.<br>
<br>
</pre>
const
rsFtmName='%s%0.2d%0.2d%d'; // wenn Jahresangabe 4-stellig
//rsFmtName='%s%0.2d%0.2d%0.2d'; // wenn Jahresangabe 2-stellig
function MakeDateiname(const aName:String; const aDate:TDateTime):String;
var tag, monat, jahr:Word;
begin
DecodeDate(aDate, jahr, monat, tag);
// ggf. 2000 vom Jahr abziehen, wenn Jahresangabe 2-stellig
// Dec(jahr, 2000);
Result:=Format(rsFmtName, [aName, tag, monat, jahr]);
end; // MakeDateiname
</pre>
<br>
Gruß Thomas</p>
<p>Hallo Bine,<br>
<br>
dafür gibt es mehrere Möglichkeiten.<br>
1. Du entfernst die Punkte aus dem Datumstring oder<br>
2. Du zerlegst das Datum in seine Bestandteile und baust aus diesen Deinen String zusammen.<br>
<br>
zu 1.<br>
<pre>
function PunktAusDatum(const aTextDatum:String):String;
var i:Integer;
begin
Result:='';
for i:=1 to Length(aTextDatum) do if (aTextDatum[i]<>'.') then
Result:=Result+aTextDatum[i]);
end; // PunktAusDatum
</pre>
<br>
zu 2.<br>
<pre>
const rsFtmName='%s%0.2d%0.2d%d'; // wenn Jahresangabe 4-stellig
{rsFmtName='%s%0.2d%0.2d%0.2d'; // wenn Jahresangabe 2-stellig}function MakeDateiname(const aName:String; const aDate:TDateTime):String;
var tag, monat, jahr:Word;
begin
DecodeDate(aDate, jahr, monat, tag);
// ggf. 2000 vom Jahr abziehen, wenn Jahresangabe 2-stellig
// Dec(jahr, 2000);
Result:=Format(rsFmtName, [aName, tag, monat, jahr]);
end; // MakeDateiname
</pre>
<br>
Gruß Thomas</p>
<p>Hallo Bine,<br>
<br>
dafür gibt es mehrere Möglichkeiten.<br>
1. Du entfernst die Punkte aus dem Datumstring oder<br>
2. Du zerlegst das Datum in seine Bestandteile und baust aus diesen Deinen String zusammen.<br>
<br>
zu 1.<br>
<pre>
function PunktAusDatum(const aTextDatum:String):String;
var i:Integer;
begin
Result:='';
for i:=1 to Length(aTextDatum) do if (aTextDatum[i]<>'.') then
Result:=Result+aTextDatum[i]);
end; // PunktAusDatum
</pre>
<br>
zu 2.<br>
<pre>
const rsFtmName='%s%0.2d%0.2d%d'; // wenn Jahresangabe 4-stellig
{rsFmtName='%s%0.2d%0.2d%0.2d'; // wenn Jahresangabe 2-stellig
function MakeDateiname(const aName:String; const aDate:TDateTime):String;
var tag, monat, jahr:Word;
begin
DecodeDate(aDate, jahr, monat, tag);
// ggf. 2000 vom Jahr abziehen, wenn Jahresangabe 2-stellig
// Dec(jahr, 2000);
Result:=Format(rsFmtName, [aName, tag, monat, jahr]);
end; // MakeDateiname
</pre>
<br>
Gruß Thomas</p>
<p>Hallo Bine,<br>
<br>
habe vergessen anzugeben, wie die Routinen benutzt werden müssen:<br>
<br>
zu 1.: dateiname:=d+PunktAusDatum(DateToStr(Date));<br>
zu 2.: dateiname:=MakeDateiname(d, Date);<br>
<br>
Gruß Thomas</p>
<p>Hallo Bine,<br>
<br>
habe vergessen anzugeben, wie die Routinen benutzt werden müssen:<br>
<br>
zu 1.: dateiname:='d'+PunktAusDatum(DateToStr(Date));<br>
zu 2.: dateiname:=MakeDateiname('d', Date);<br>
<br>
Gruß Thomas</p>
Also in diesem code ist noch ein Fehler,..
<pre>
datum:= strtodate(valt_datumbis);
DecodeDate(datum, Year, Month, Day);
Year:= Year-1;
Month:= 12;
Day:= 31;
datum:=DateToStr(EncodeDate(year, month, day));
</pre>
<p>Hallo Bine,<br>
<br>
die Variable <b>datum</b> wird wahrscheinlich vom Typ TDateTime sein?<br>Wenn dem so ist, so kannst Du nicht DateToStr benutzen. Sondern:<br>
<br>
datum:=EncodeDate(year, month, day);<br>
<br>
Gruß Thomas</p>
Danke es lag daran das ich die Variablen nicht richtig oder gar nicht definiert habe
<pre>
var
Year, Month, Day: Word;
datum: Tdate;
<pre>
begin
datum:= strtodate(valt_datumbis);
DecodeDate(datum, Year, Month, Day);
Year:= Year-1;
Month:= 12;
Day:= 31;
datum:=(EncodeDate(year, month, day));
end;
</pre>
Comment