Nachtrag zu meiner letzten Antwort:
In "zint_maxicode.pas" in Funktion "maxicode":
Delphi-Quellcode:
postcode := symbol.primary;
if (mode = 2) then
begin
for i := 0 to 9 do // geändert
if (postcode[i] = ' ') then
postcode[i] := #0;
postcode[10] := #0; // neu
end
else if (mode = 3) then
postcode[7] := #0;
countrystr[0] := symbol.primary[9];
countrystr[1] := symbol.primary[10];
countrystr[2] := symbol.primary[11];
countrystr[3] := #0;
servicestr[0] := symbol.primary[12];
servicestr[1] := symbol.primary[13];
servicestr[2] := symbol.primary[14];
servicestr[3] := #0;
Da habe ich es jetzt selber nicht ganz richtig gemacht und auch noch einen Fehler eingebaut
Die for-Schleife muss natürlich "for i := 0 to 8" und die Zuweisung "postcode[9] := #0;" lauten.
Da "postcode" und "symbol.primary" beides dynamische Arrays sind, zeigen nach der Zuweisung "postcode := symbol.primary;" beide Variablen auf den gleichen Speicher. Daher überschreibt die Anweisung "postcode[9] := #0;" implizit den den Wert "symbol.primary[9]" und macht dadurch "countrystr[0]" falsch. Also muss entwender die Zuweisung "postcode := symbol.primary;" richtig "postcode := copy(symbol.primary);" lauten oder der Code muss umgestellt werden.
Jetzt hoffentlich richtig:
Delphi-Quellcode:
postcode := copy(symbol.primary);
if (mode = 2) then
begin
for i := 0 to 8 do // geändert
if (postcode[i] = ' ') then
postcode[i] := #0;
postcode[9] := #0; // neu
end
else if (mode = 3) then
postcode[7] := #0;
countrystr[0] := symbol.primary[9];
countrystr[1] := symbol.primary[10];
countrystr[2] := symbol.primary[11];
countrystr[3] := #0;
servicestr[0] := symbol.primary[12];
servicestr[1] := symbol.primary[13];
servicestr[2] := symbol.primary[14];
servicestr[3] := #0;
Sorry für das Chaos!