@jbg: Das war nur eine völlig geratene Vermutung. Ob das überhaupt von Belang wäre weiss ich ja nichtmal
@retnyg: Hmmm, das könnte an sich sein. Jedoch würde ich eher Konstanten in dieser Form erwarten, und solche kommen in beiden Prozeduren nicht vor (zumindest keine die diesem Wert entsprächen). Zudem sind es alles lokale Variablen (die ja auf dem Stack rumlungern dürften
), womit ein Pointer auf einen Wert auch nicht allzu plausibel erscheint. Aber an sich klingt das nach einer wahrscheinlichen Sache...
Die beiden zugerörigen Prozeduren mal in
DL:
Delphi-Quellcode:
function FillZero(const s: String; const count: Integer): String;
var
oldL: Integer;
i : Integer;
begin
oldL := Length(s);
SetLength(result, count);
for i := 1 to count-oldL do
result[i] := '0';
for i := count-oldL+1 to count do
result[i] := s[i-count+oldL];
end;
// <-----------
procedure TfrmVorlage.FillVerfuegbar;
var
s: array[0..7] of String;
begin
lbVerfuegbar.Items.Clear;
QryVerfuegbar.First;
while not QryVerfuegbar.Eof do
begin
s[0] := QryVerfuegbar.FieldValues['N00'];
s[1] := QryVerfuegbar.FieldValues['N01'];
s[2] := QryVerfuegbar.FieldValues['N02'];
s[3] := QryVerfuegbar.FieldValues['N03'];
s[4] := QryVerfuegbar.FieldValues['EArt'];
s[5] := QryVerfuegbar.FieldValues['Def'];
s[6] := QryVerfuegbar.FieldValues['N04'];
s[7] := QryVerfuegbar.FieldValues['Text'];
lbVerfuegbar.Items.Add(FillZero(s[0], 2) + '-' +
FillZero(s[1], 2) + '-' +
FillZero(s[2], 2) + '-' +
FillZero(s[3], 2) + '-' +
s[4] + '-' +
s[5] +
FillZero(s[6], 4) + ' ' +
s[7]);
QryVerfuegbar.Next;
end;
end;
Die betreffende
ASM-Zeile steht quasi zwischen diesen beiden Prozeduren, beim Pfeil.
\\EDIT: @Dax
: Also tatsächlich wirklich Alignment... ist ja nen Dingen! Hat das wirklich merkbaren Einfluss auf die Geschwindigkeit? Ich hatte hier mal irgendwo soetwas gelesen, allerdings in Bezug auf Datenalignment und den Zugriff darauf. (Wobei ein Call ja eigentlich nix anderes ist. Sitmmt schon...
)
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel