Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Einem Array of double einen Wert 0 zuweisen (https://www.delphipraxis.net/177987-einem-array-double-einen-wert-0-zuweisen.html)

Natcree 9. Dez 2013 18:51

Einem Array of double einen Wert 0 zuweisen
 
Hallo Zusammen Wiedereinmal

Ich habe 49 variablen einen arry of double draus machen ist kein Problem. Nun will ich aber jeder Variablen den 0 zuweisen

Habe es schon mit Versucht Gibt aber ne klare Fehlermeldung zurück

Delphi-Quellcode:
var
d: double;
Zahl: array[1..49] of double;
begin
  for d:=zahl1 to zahl49  do
  begin
   d:=0;
  end;
end;

for loop control variable must have ordinal type.
wie muss ich an diese Sache rangehen?

DeddyH 9. Dez 2013 19:08

AW: Einem Array of double einen Wert 0 zuweisen
 
Hast Du nun 49 Variablen oder eine 49-elementige Array-Variable? Ich steig schon bei den paar Zeilen Code nicht mehr durch, da geht ja alles durcheinander :gruebel:

Natcree 9. Dez 2013 19:14

AW: Einem Array of double einen Wert 0 zuweisen
 
Ich zeigt dir mal nen beispielcode aus meinem "Prog"


Aber nicht erschrecken lol

Delphi-Quellcode:
procedure TForm1.LMDSpeedButton2Click(Sender: TObject);
var
gesamtzahl,gesamtzahl1,gesamtzahl2,gesamtzahl3,gesamtzahl4,
gesamtzahl5,gesamtzahl6,gesamtzahl7,gesamtzahl8,
gesamtzahl9,gesamtzahl12,gesamtzahl13,gesamtzahl14,gesamtzahl15,
gesamtzahl16,gesamtzahl17,gesamtzahl18,gesamtzahl19,gesamtzahl20,
gesamtzahl21,gesamtzahl22,gesamtzahl23,gesamtzahl24,
gesamtzahl25,gesamtzahl26,gesamtzahl27,gesamtzahl28,
gesamtzahl31,gesamtzahl32,gesamtzahl33,gesamtzahl34,
gesamtzahl35,gesamtzahl36,gesamtzahl37,gesamtzahl38,gesamtzahl39,
gesamtzahl41,gesamtzahl42,gesamtzahl43,gesamtzahl44,
gesamtzahl45,gesamtzahl46,gesamtzahl47,gesamtzahl48,gesamtzahl49: double;
i:integer;
s : String;
e: array of char;
begin
    for i:=1 to eltreestringgrid1.RowCount-1 do begin
    if eltreestringgrid1.cells[5,i]='2110' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='2110' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='2110' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='2110' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='2110' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='2110' then gesamtzahl:=gesamtzahl + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='2110' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='3221' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='3221' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='3221' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='3221' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='3221' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='3221' then gesamtzahl1:=gesamtzahl1 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='3221' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='2303' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='2303' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='2303' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='2303' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='2303' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='2303' then gesamtzahl2:=gesamtzahl2 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='2303' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='2400' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='2400' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='2400' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='2400' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='2400' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='2400' then gesamtzahl3:=gesamtzahl3 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='2400' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='2750' then Length(eltreestringgrid1.Cells[3,i]);
    if eltreestringgrid1.cells[5,i]='2750' then s := eltreestringgrid1.Cells[3,i];
    if eltreestringgrid1.cells[5,i]='2750' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='2750' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='2750' then eltreestringgrid1.Cells[3,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='2750' then gesamtzahl6:=gesamtzahl6 + strtofloat(eltreestringgrid1.cells[3,i]);
    if eltreestringgrid1.cells[5,i]='2750' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='2900' then Length(eltreestringgrid1.Cells[3,i]);
    if eltreestringgrid1.cells[5,i]='2900' then s := eltreestringgrid1.Cells[3,i];
    if eltreestringgrid1.cells[5,i]='2900' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='2900' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='2900' then eltreestringgrid1.Cells[3,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='2900' then gesamtzahl7:=gesamtzahl7 + strtofloat(eltreestringgrid1.cells[3,i]);
    if eltreestringgrid1.cells[5,i]='2900' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='4110' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='4110' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='4110' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='4110' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='4110' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='4110' then gesamtzahl12:=gesamtzahl12 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='4110' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='4150' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='4150' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='4150' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='4150' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='4150' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='4150' then gesamtzahl13:=gesamtzahl13 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='4150' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='4230' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='4230' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='4230' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='4230' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='4230' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='4230' then gesamtzahl14:=gesamtzahl14 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='4230' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='4900' then Length(eltreestringgrid1.Cells[3,i]);
    if eltreestringgrid1.cells[5,i]='4900' then s := eltreestringgrid1.Cells[3,i];
    if eltreestringgrid1.cells[5,i]='4900' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='4900' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='4900' then eltreestringgrid1.Cells[3,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='4900' then gesamtzahl17:=gesamtzahl17 + strtofloat(eltreestringgrid1.cells[3,i]);
    if eltreestringgrid1.cells[5,i]='4900' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='5020' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='5020' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='5020' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='5020' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='5020' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='5020' then gesamtzahl21:=gesamtzahl21 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='5020' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='5250' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='5250' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='5250' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='5250' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='5250' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='5250' then gesamtzahl22:=gesamtzahl22 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='5250' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='5872' then Length(eltreestringgrid1.Cells[3,i]);
    if eltreestringgrid1.cells[5,i]='5872' then s := eltreestringgrid1.Cells[3,i];
    if eltreestringgrid1.cells[5,i]='5872' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='5872' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='5872' then eltreestringgrid1.Cells[3,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='5872' then gesamtzahl24:=gesamtzahl24 + strtofloat(eltreestringgrid1.cells[3,i]);
    if eltreestringgrid1.cells[5,i]='5872' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='5650' then Length(eltreestringgrid1.Cells[3,i]);
    if eltreestringgrid1.cells[5,i]='5650' then s := eltreestringgrid1.Cells[3,i];
    if eltreestringgrid1.cells[5,i]='5650' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='5650' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='5650' then eltreestringgrid1.Cells[3,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='5650' then gesamtzahl25:=gesamtzahl25 + strtofloat(eltreestringgrid1.cells[3,i]);
    if eltreestringgrid1.cells[5,i]='5650' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='8028' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='8028' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='8028' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='8028' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='8028' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='8028' then gesamtzahl41:=gesamtzahl41 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='8028' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='7100' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='7100' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='7100' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='7100' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='7100' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='7100' then gesamtzahl42:=gesamtzahl42 + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='7100' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='8150' then Length(eltreestringgrid1.Cells[3,i]);
    if eltreestringgrid1.cells[5,i]='8150' then s := eltreestringgrid1.Cells[3,i];
    if eltreestringgrid1.cells[5,i]='8150' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='8150' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='8150' then eltreestringgrid1.Cells[3,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='8150' then gesamtzahl45:=gesamtzahl45 + strtofloat(eltreestringgrid1.cells[3,i]);
    if eltreestringgrid1.cells[5,i]='8150' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else;
    if eltreestringgrid1.cells[5,i]='7358' then Length(eltreestringgrid1.Cells[3,i]);
    if eltreestringgrid1.cells[5,i]='7358' then s := eltreestringgrid1.Cells[3,i];
    if eltreestringgrid1.cells[5,i]='7358' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='7358' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='7358' then eltreestringgrid1.Cells[3,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='7358' then gesamtzahl46:=gesamtzahl46 + strtofloat(eltreestringgrid1.cells[3,i]);
    if eltreestringgrid1.cells[5,i]='7358' then eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €' else;
    end;
Form9.Label2110.Caption  := 'Mitgliedsbeiträge:';
Form9.Edit1.text         := Format('%f €', [Gesamtzahl]);
Form9.Label3221.Caption  := 'Spenden:';
Form9.Edit2.text         := Format('%f €', [Gesamtzahl1]);
Form9.Label2303.Caption  := 'Zuschüsse:';
Form9.Edit3.text         := Format('%f €', [Gesamtzahl2]);
Form9.Label2400.Caption  := 'sonstige Einnahmen:';
Form9.Edit4.text         := Format('%f €', [Gesamtzahl3]);
Gesamtzahl4               := Gesamtzahl + Gesamtzahl1 + Gesamtzahl2 + Gesamtzahl3;
Form9.LabelGesamt.Caption := 'Summe Einnahmen:';
Form9.Edit5.text         := Format('%f €', [Gesamtzahl4]);

Gesamtzahl5:=0;
Form9.Edit6.text         := Format('%f €', [Gesamtzahl5]);
Form9.Edit7.text         := Format('%f €', [Gesamtzahl6]);
Form9.Edit8.text         := Format('%f €', [Gesamtzahl7]);
Gesamtzahl8               := Gesamtzahl5 + Gesamtzahl6 + Gesamtzahl7;
Form9.Edit9.text         := Format('%f €', [Gesamtzahl8]);
Form9.Edit10.text        := Format('%f €', [Gesamtzahl8]);

Gesamtzahl9               := Gesamtzahl4-Gesamtzahl8;
Form9.Edit21.text:=floattostr(gesamtzahl9);
Form9.Edit11.text        := Format('%f €', [Gesamtzahl9]);

Form9.Edit12.text        := Format('%f €', [Gesamtzahl12]);
Form9.Edit13.text        := Format('%f €', [Gesamtzahl13]);
Form9.Edit14.text        := Format('%f €', [Gesamtzahl14]);
Gesamtzahl15              := Gesamtzahl12 + Gesamtzahl13 + Gesamtzahl14;
Form9.Edit15.text        := Format('%f €', [Gesamtzahl15]);

Gesamtzahl16:=0;
Form9.Edit16.text        := Format('%f €', [Gesamtzahl16]);
Form9.Edit17.text        := Format('%f €', [Gesamtzahl17]);
Gesamtzahl18              := Gesamtzahl16 + Gesamtzahl17;
Form9.Edit18.text        := Format('%f €', [Gesamtzahl18]);
Gesamtzahl19              := Gesamtzahl18;
Form9.Edit19.text        := Format('%f €', [Gesamtzahl19]);
Gesamtzahl20              := Gesamtzahl15-Gesamtzahl18;
Form9.Edit22.text:=floattostr(gesamtzahl20) ;
Form9.Edit20.text        := Format('%f €', [Gesamtzahl20]);

Form10.Edit1.text        := Format('%f €', [Gesamtzahl21]);
Form10.Edit2.text        := Format('%f €', [Gesamtzahl22]);
Gesamtzahl23              := Gesamtzahl21 + Gesamtzahl22;
Form10.Edit3.text        := Format('%f €', [Gesamtzahl23]);

Form10.Edit4.text        := Format('%f €', [Gesamtzahl24]);
Form10.Edit5.text        := Format('%f €', [Gesamtzahl25]);
Gesamtzahl26              := Gesamtzahl24 + Gesamtzahl25;
Form10.Edit6.text        := Format('%f €', [Gesamtzahl26]);

Form10.edit7.text         := Format('%f €', [Gesamtzahl26]);
Gesamtzahl27               := Gesamtzahl23 - Gesamtzahl26;
Form10.Edit9.text:=floattostr(gesamtzahl27);
Form10.edit8.text         := Format('%f €', [Gesamtzahl27]);

Form11.edit1.text         := Format('%f €', [Gesamtzahl31]);
Form11.edit2.text         := Format('%f €', [Gesamtzahl32]);
Form11.edit3.text         := Format('%f €', [Gesamtzahl33]);
Form11.edit4.text         := Format('%f €', [Gesamtzahl34]);
Form11.edit5.text         := Format('%f €', [Gesamtzahl35]);
Form11.edit6.text         := Format('%f €', [Gesamtzahl36]);
Form11.edit7.text         := Format('%f €', [Gesamtzahl37]);
Form11.edit8.text         := Format('%f €', [Gesamtzahl38]);
Form11.Edit10.text:=floattostr(gesamtzahl39);
Form11.edit9.text         := Format('%f €', [Gesamtzahl39]);

Form12.edit1.text         := Format('%f €', [Gesamtzahl41]);
Form12.edit2.text         := Format('%f €', [Gesamtzahl42]);
gesamtzahl43               := Gesamtzahl41 + Gesamtzahl42;
Form12.edit3.text         := Format('%f €', [Gesamtzahl43]);

Form12.edit4.text         := Format('%f €', [Gesamtzahl44]);
Form12.edit5.text         := Format('%f €', [Gesamtzahl45]);
Form12.edit6.text         := Format('%f €', [Gesamtzahl46]);
gesamtzahl47               := Gesamtzahl44 + Gesamtzahl45 + Gesamtzahl46;
Form12.edit7.text         := Format('%f €', [Gesamtzahl47]);
Form12.edit8.text         := Format('%f €', [Gesamtzahl47]);
Gesamtzahl48               := Gesamtzahl43 - Gesamtzahl47;
Form12.Edit10.text:=floattostr(gesamtzahl48);
Form12.edit9.text         := Format('%f €', [Gesamtzahl48]);

Form13.Show;
end;

Nun will ich den gesamtzahl variablen allen den Wert 0 zuweisen damit auch der Compiler nicht mehr
meckert wie gesamtzahl1 meight have not been intialized.

So und nun meckert über den langen code und wie versaut er ist... lol :lol:

DeddyH 9. Dez 2013 19:22

AW: Einem Array of double einen Wert 0 zuweisen
 
:shock:. Naja, die Idee mit dem Array war ja schon ganz richtig (immerhin etwas).
Delphi-Quellcode:
var
  Gesamtzahlen: array[1..49] of double;
begin
  FillChar(Gesamtzahlen, SizeOf(Gesamtzahlen), 0);
Oder in einer Schleife einzeln zuweisen:
Delphi-Quellcode:
var
  Gesamtzahlen: array[1..49] of double;
  i: integer;
begin
  for i := Low(Gesamtzahlen) to High(Gesamtzahlen) do
    Gesamtzahlen[i] := 0;
Und dann statt auf 49 Einzelvariablen auf den entsprechenden Array-Index zugreifen.
Delphi-Quellcode:
Form9.Edit1.text := Format('%f €', [Gesamtzahlen[1]]);

bcvs 9. Dez 2013 19:28

AW: Einem Array of double einen Wert 0 zuweisen
 
Kauf dir mal ein gutes Buch über Delphi.

Aber ich will ja nicht so sein:


Delphi-Quellcode:
var
i: integer;
Zahl: array[1..49] of double;
begin
  for i:=1 to 49  do
  begin
   zahl[i]:=0;
  end;
end;
Außerdem:
Zitat:

Delphi-Quellcode:
   
    if eltreestringgrid1.cells[5,i]='2110' then Length(eltreestringgrid1.Cells[2,i]);
    if eltreestringgrid1.cells[5,i]='2110' then s := eltreestringgrid1.Cells[2,i];
    if eltreestringgrid1.cells[5,i]='2110' then setlength(e,length(s)-2);
    if eltreestringgrid1.cells[5,i]='2110' then copymemory(e,@s[1],length(e));
    if eltreestringgrid1.cells[5,i]='2110' then eltreestringgrid1.Cells[2,i]:=(string(e));
    if eltreestringgrid1.cells[5,i]='2110' then gesamtzahl:=gesamtzahl + strtofloat(eltreestringgrid1.cells[2,i]);
    if eltreestringgrid1.cells[5,i]='2110' then eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €' else;

Schon mal was von begin /end gehört? Warum nicht so?
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;

Helmi 9. Dez 2013 19:37

AW: Einem Array of double einen Wert 0 zuweisen
 
Zitat:

Zitat von bcvs (Beitrag 1239191)
Delphi-Quellcode:
var
i: integer;
Zahl: array[1..49] of double;
begin
  for i:=1 to 49  do
  begin
   zahl[i]:=0;
  end;
end;

Oder wenn man die Grenzen nicht zweimal angeben will:
Delphi-Quellcode:
var
  i: integer;
  Zahl: array[1..49] of double;

begin
  for i := low(Zahl) to high(Zahl) do
    begin
     zahl[i]:=0;
    end;
end;

himitsu 9. Dez 2013 19:53

AW: Einem Array of double einen Wert 0 zuweisen
 
Zitat:

Zitat von bcvs (Beitrag 1239191)
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.

Natcree 9. Dez 2013 20:33

AW: Einem Array of double einen Wert 0 zuweisen
 
So Habe den Code Jetzt wie folgt geändert:


Delphi-Quellcode:
procedure TForm1.LMDSpeedButton2Click(Sender: TObject);
var
Gesamtzahl:double;
Gesamtzahlen: array[1..48] of double;
i:integer;
s : String;
begin
  Gesamtzahl:=0;
  for i := Low(Gesamtzahlen) to High(Gesamtzahlen) do Gesamtzahlen[i] := 0;
  for i:=1 to eltreestringgrid1.RowCount-1 do begin
    if eltreestringgrid1.cells[5,i]='2110' then begin
      s := ElTreeStringGrid1.Cells[2,i];
      SetLength(S, Length(s) - 2);
      Gesamtzahl := Gesamtzahl + StrToFloat(S);
      ElTreeStringGrid1.Cells[2,i] := S + ' €';
    end;
    if eltreestringgrid1.cells[5,i]='3221' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[1]:=gesamtzahlen[1] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='2303' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[2]:=gesamtzahlen[2] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='2400' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[3]:=gesamtzahlen[3] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='2750' then begin
      s := eltreestringgrid1.Cells[3,i];
      setlength(e,length(s)-2);
      gesamtzahlen[6]:=gesamtzahlen[6] + strtofloat(eltreestringgrid1.cells[3,i]);
      eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='2900' then begin
      s := eltreestringgrid1.Cells[3,i];
      setlength(e,length(s)-2);
      gesamtzahlen[7]:=gesamtzahlen[7] + strtofloat(eltreestringgrid1.cells[3,i]);
      eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='4110' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[12]:=gesamtzahlen[12] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='4150' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[13]:=gesamtzahlen[13] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='4230' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[14]:=gesamtzahlen[14] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='4900' then begin
      s := eltreestringgrid1.Cells[3,i];
      setlength(e,length(s)-2);
      gesamtzahlen[17]:=gesamtzahlen[17] + strtofloat(eltreestringgrid1.cells[3,i]);
      eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='5020' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[21]:=gesamtzahlen[21] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='5250' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[22]:=gesamtzahlen[22] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='5872' then begin
      s := eltreestringgrid1.Cells[3,i];
      setlength(e,length(s)-2);
      gesamtzahlen[24]:=gesamtzahlen[24] + strtofloat(eltreestringgrid1.cells[3,i]);
      eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='5650' then begin
      s := eltreestringgrid1.Cells[3,i];
      setlength(e,length(s)-2);
      gesamtzahlen[25]:=gesamtzahlen[25] + strtofloat(eltreestringgrid1.cells[3,i]);
      eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='8028' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[41]:=gesamtzahlen[41] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='7100' then begin
      s := eltreestringgrid1.Cells[2,i];
      setlength(e,length(s)-2);
      gesamtzahlen[42]:=gesamtzahlen[42] + strtofloat(eltreestringgrid1.cells[2,i]);
      eltreestringgrid1.Cells[2,i]:=eltreestringgrid1.Cells[2,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='8150' then begin
      s := eltreestringgrid1.Cells[3,i];
      setlength(e,length(s)-2);
      gesamtzahlen[45]:=gesamtzahlen[45] + strtofloat(eltreestringgrid1.cells[3,i]);
      eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €';
    end;
    if eltreestringgrid1.cells[5,i]='7358' then begin
      s := eltreestringgrid1.Cells[3,i];
      setlength(e,length(s)-2);
      gesamtzahlen[46]:=gesamtzahlen[46] + strtofloat(eltreestringgrid1.cells[3,i]);
      eltreestringgrid1.Cells[3,i]:=eltreestringgrid1.Cells[3,i]+' €';
    end;

Form9.Label2110.Caption  := 'Mitgliedsbeiträge:';
Form9.Edit1.text         := Format('%f €', [Gesamtzahl]);
Form9.Label3221.Caption  := 'Spenden:';
Form9.Edit2.text         := Format('%f €', [Gesamtzahlen[1]]);
Form9.Label2303.Caption  := 'Zuschüsse:';
Form9.Edit3.text         := Format('%f €', [Gesamtzahlen[2]]);
Form9.Label2400.Caption  := 'sonstige Einnahmen:';
Form9.Edit4.text         := Format('%f €', [Gesamtzahlen[3]]);
Gesamtzahlen[4]          := Gesamtzahl + Gesamtzahlen[1] + Gesamtzahlen[2] + Gesamtzahlen[3];
Form9.LabelGesamt.Caption := 'Summe Einnahmen:';
Form9.Edit5.text         := Format('%f €', [Gesamtzahlen[4]]);

Gesamtzahlen[5]:=0;
Form9.Edit6.text         := Format('%f €', [Gesamtzahlen[5]]);
Form9.Edit7.text         := Format('%f €', [Gesamtzahlen[6]]);
Form9.Edit8.text         := Format('%f €', [Gesamtzahlen[7]]);
Gesamtzahlen[8]          := Gesamtzahlen[5] + Gesamtzahlen[6] + Gesamtzahlen[7];
Form9.Edit9.text         := Format('%f €', [Gesamtzahlen[8]]);
Form9.Edit10.text        := Format('%f €', [Gesamtzahlen[8]]);

Gesamtzahlen[9]          := Gesamtzahlen[4]-Gesamtzahlen[8];
Form9.Edit21.text        := floattostr(gesamtzahlen[9]);
Form9.Edit11.text        := Format('%f €', [Gesamtzahlen[9]]);

Form9.Edit12.text        := Format('%f €', [Gesamtzahlen[12]]);
Form9.Edit13.text        := Format('%f €', [Gesamtzahlen[13]]);
Form9.Edit14.text        := Format('%f €', [Gesamtzahlen[14]]);
Gesamtzahlen[15]         := Gesamtzahlen[12] + Gesamtzahlen[13] + Gesamtzahlen[14];
Form9.Edit15.text        := Format('%f €', [Gesamtzahlen[15]]);

Gesamtzahlen[16]:=0;
Form9.Edit16.text        := Format('%f €', [Gesamtzahlen[16]]);
Form9.Edit17.text        := Format('%f €', [Gesamtzahlen[17]]);
Gesamtzahlen[18]         := Gesamtzahlen[16] + Gesamtzahlen[17];
Form9.Edit18.text        := Format('%f €', [Gesamtzahlen[18]]);
Gesamtzahlen[19]         := Gesamtzahlen[18];
Form9.Edit19.text        := Format('%f €', [Gesamtzahlen[19]]);
Gesamtzahlen[20]         := Gesamtzahlen[15]-Gesamtzahlen[18];
Form9.Edit22.text        := floattostr(gesamtzahlen[20]) ;
Form9.Edit20.text        := Format('%f €', [Gesamtzahlen[20]]);

Form10.Edit1.text        := Format('%f €', [Gesamtzahlen[21]]);
Form10.Edit2.text        := Format('%f €', [Gesamtzahlen[22]]);
Gesamtzahlen[23]         := Gesamtzahlen[21] + Gesamtzahlen[22];
Form10.Edit3.text        := Format('%f €', [Gesamtzahlen[23]]);

Form10.Edit4.text        := Format('%f €', [Gesamtzahlen[24]]);
Form10.Edit5.text        := Format('%f €', [Gesamtzahlen[25]]);
Gesamtzahlen[26]         := Gesamtzahlen[24] + Gesamtzahlen[25];
Form10.Edit6.text        := Format('%f €', [Gesamtzahlen[26]]);

Form10.edit7.text        := Format('%f €', [Gesamtzahlen[26]]);
Gesamtzahlen[27]         := Gesamtzahlen[23] - Gesamtzahlen[26];
Form10.Edit9.text        := floattostr(gesamtzahlen[27]);
Form10.edit8.text        := Format('%f €', [Gesamtzahlen[27]]);

Form11.edit1.text        := Format('%f €', [Gesamtzahlen[31]]);
Form11.edit2.text        := Format('%f €', [Gesamtzahlen[32]]);
Form11.edit3.text        := Format('%f €', [Gesamtzahlen[33]]);
Form11.edit4.text        := Format('%f €', [Gesamtzahlen[34]]);
Form11.edit5.text        := Format('%f €', [Gesamtzahlen[35]]);
Form11.edit6.text        := Format('%f €', [Gesamtzahlen[36]]);
Form11.edit7.text        := Format('%f €', [Gesamtzahlen[37]]);
Form11.edit8.text        := Format('%f €', [Gesamtzahlen[38]]);
Form11.Edit10.text       := floattostr(gesamtzahlen[39]);
Form11.edit9.text        := Format('%f €', [Gesamtzahlen[39]]);

Form12.edit1.text        := Format('%f €', [Gesamtzahlen[41]]);
Form12.edit2.text        := Format('%f €', [Gesamtzahlen[42]]);
gesamtzahlen[43]         := Gesamtzahlen[41] + Gesamtzahlen[42];
Form12.edit3.text        := Format('%f €', [Gesamtzahlen[43]]);

Form12.edit4.text        := Format('%f €', [Gesamtzahlen[44]]);
Form12.edit5.text        := Format('%f €', [Gesamtzahlen[45]]);
Form12.edit6.text        := Format('%f €', [Gesamtzahlen[46]]);
gesamtzahlen[47]         := Gesamtzahlen[44] + Gesamtzahlen[45] + Gesamtzahlen[46];
Form12.edit7.text        := Format('%f €', [Gesamtzahlen[47]]);
Form12.edit8.text        := Format('%f €', [Gesamtzahlen[47]]);
Gesamtzahlen[48]         := Gesamtzahlen[43] - Gesamtzahlen[47];
Form12.Edit10.text       := floattostr(gesamtzahlen[48]);
Form12.edit9.text        := Format('%f €', [Gesamtzahlen[48]]);
Form13.Show;
end;
end;

Natcree 9. Dez 2013 20:45

AW: Einem Array of double einen Wert 0 zuweisen
 
Zitat:

Also kann man die zusammenfassen und in eine Schleife oder Funktion verschieben, wo die Konstanten und Komponentennamen entsprechend angepasst werden.
Wie machen ich das am besten?

Diese Procedure wird ja nur einmal im jahr ausgeführt. Hier werden die Daten ausen einem Kassenbuch nach Kostenstellen aufgelistet und in die entsprechenden Fenster zur Einnahmen/Ausgaben Überschussrechnung fürs Finanzamt zum Druck vorbereitet.

Daher Frag ich mich ob es Sinn macht und wenn ja Warum?

Sir Rufo 9. Dez 2013 22:20

AW: Einem Array of double einen Wert 0 zuweisen
 
Ja wenn die nur einmal im Jahr aufgerufen wird, dann macht das ja nix.

Ist ja nur fürs Finanzamt ... warum sollte man da vernünftig (übersichtlich, KISS, DRY, etc.) programmieren.
Würd ja auch gar nicht zum Rest passen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz