Online
Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.088 Beiträge
Delphi 12 Athens
|
AW: Einem Array of double einen Wert 0 zuweisen
9. Dez 2013, 20:53
Delphi-Quellcode:
if eltreestringgrid1.cells[5,i]='2110' then begin
Length(eltreestringgrid1.Cells[2,i]);
s := eltreestringgrid1.Cells[2,i];
setlength(e,length(s)-2);
copymemory(e,@s[1],length(e));
eltreestringgrid1.Cells[2,i]:=(string(e));
gesamtzahl:=gesamtzahl +strtofloat(eltreestringgrid1.cells[2,i]);
eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
end;
Delphi-Quellcode:
if eltreestringgrid1.cells[5,i]=' 2110' then begin
Length(eltreestringgrid1.Cells[2,i]); // macht nix, da niemand das Result auswertest
s := eltreestringgrid1.Cells[2,i];
setlength(e,length(s)-2);
copymemory(e,@s[1],length(e)); // den, der das mal nach Unicode umstellen soll ... :waffe_in_ecke_stell:, damit der sich gleich erschießen kann
eltreestringgrid1.Cells[2,i]:=( string(e)); // wozu das Char-Array
gesamtzahl:=gesamtzahl +strtofloat(eltreestringgrid1.cells[2,i]); // wenn man hier E nimmt, dann kann ist die nächste Zeile sinnlos
eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
end;
Delphi-Quellcode:
if ElTreeStringGrid1.Cells[5, i] = '2110' then begin
s := ElTreeStringGrid1.Cells[2, i];
SetLength(s, Length(s) - 2); // Copy oder Delete gingen auch
Gesamtzahl := Gesamtzahl + StrToFloat(s);
ElTreeStringGrid1.Cells[2, i] := s + ' €';
end;
Und die vielen weiteren IFs machen doch das Selbe? (ist ja nicht so gut erkennbar)
Also kann man die zusammenfassen und in eine Schleife oder Funktion verschieben, wo die Konstanten und Komponentennamen entsprechend angepasst werden.
Ach ja, eine halbwegs ordentliche Codeformatierung, Groß-/Kleinschreibung und ordentliche Namen für Komponenten machen den Code gleich viel lesbarer.
Der Vorschlag von bcvs sollte besser mal beherzigt werden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
Geändert von himitsu ( 9. Dez 2013 um 20:57 Uhr)
|