Hmmm, jo sieht kurz aus und erfüllt sicher auch den Zweck nur steig ich da noch nicht ganz durch. Muss ich mir mal nochmal anschauen wenn ich ausgeschlafen bin. Mit einem MemoryStream hab ich auch schon experimentiert aber das hat auch nicht so hingehauen wie ich gern wollte. Aber irgendwie muss es ja schliesslich gehen.
Könntest mir mit dem hier ein kleines Beispiel mit Datei machen und zum runterladen anhängen?
Das sollte in die
Dll und bei bedarf dynamisch geladen werden:
Delphi-Quellcode:
procedure EditKommaAusgang(Zeichen:String; var Ergebnis: String); stdcall;
var
T, VKT, HKT, B: String;
MP, KP: Integer;
VKTL, HKTL: Boolean;
begin
VKTL := False;
HKTL := False;
T := Zeichen;
if T = '.' then T := '0.0';
if T = '-' then T := '0.0';
if T = '-.' then T := '0.0';
if Pos('.', T) = 0 then T := T + '.';
MP := Pos('-', T);
KP := Pos('.', T);
if KP > 0 then
begin
VKT := Copy(T, 1, KP - 1);
if MP > 0 then VKT := Copy(VKT, 2, Length(VKT) - 1);
HKT := Copy(T, KP + 1, Length(T) - KP);
//Vorkommatext Nullen kürzen
B := Copy(VKT, 1, 1);
while B = '0' do
begin
VKT := Copy(VKT, 2, Length(VKT) - 1);
B := Copy(VKT, 1, 1);
if Length(VKT) = 0 then VKTL := True;
end;
//Hinterkommatext Nullen kürzen
B := Copy(HKT, Length(HKT), 1);
while B = '0' do
begin
HKT := Copy(HKT, 1, Length(HKT) - 1);
B := Copy(HKT, Length(HKT), 1);
if Length(HKT) = 0 then HKTL := True;
end;
T := '';
if MP > 0 then T := '-';
T := T + VKT + '.' + HKT;
end;
if T = '.' then if (VKTL = True) or (HKTL = True) then T := '0.0' else T := '';
if T = '-.' then if (VKTL = True) or (HKTL = True) then T := '0.0' else T := '';
Ergebnis := T;
end;
Und das hier ist im Programm:
Delphi-Quellcode:
procedure TForm1.Vorschau();
var
V510: String;
begin
EditKommaAusgang('00123.6329000', V510);
end;
wobei es auch eine function sein kann und keine procedure. In dem Fall wäre es egal. Im idealfall müßte als String ja 123.6329 zurück kommen da ich ja alle nullen davor und danach wegkill. Nur wie stell ich das jetzt am besten an. Wenn mir dazu mit dem Beispiel hier eine Datei machen könntest wär das supi. Hab Delphi 7 Enterprise.
Tausend Dank.