Einzelnen Beitrag anzeigen

delphis spassbremse
(Gast)

n/a Beiträge
 
#1

Integerwert setzt sich nach for schleife zurück

  Alt 14. Feb 2007, 16:42
Moinzen...

irgendwie starr ich hier die ganze zeit auf nen
fehlerfreien code und doch klappt es nicht, wie ich es mir vorstelle...

kurz dazu gesagt: das ganze ist ein Codegenerator für mein internetcafe system...
das ding holt sich ein html template und setzt dabei zufallcodes ein.
Wenn man aber nun mehr als eine seite von diesen Codes erstellt,
dann hat man praktisch mehrmals die identische seite...

ich mache das ganze so.. ich hab ein array das 540 felder hat.
ich nehme dann eine for schleife und weise jeden der 540 einen zufallscode zu

dann habe ich einen couter der immer eins höher zählt und somit einen anderen code in das leere feld reindrückt...
nur setzt sich der counter nach jedem for aufruf der variable seite auf 0 zurück

hier ist der code um mir evtl. besser helfen zu können...

Delphi-Quellcode:
procedure TForm1.generierenClick(Sender: TObject);
var
  datei, ordner, sect, ag: String; seiten, vorgang1, vorgang2, vorgang3, codeg, counter: Integer;
  code : array[1..540] of String;
begin
  ordner := '.\codeliste\' + getdate + '-' + gettime;
  mkdir(pchar(ordner));

  counter := 0;
  tpl.Clear;
  try
    tpl.Lines.LoadFromFile('.\code.tpl');
  except
    application.MessageBox('Konnte das Code Template nicht finden!'+#10#13+'Das Programm wird beendet!', 'Fehler!', 16);
    halt;
  end;
  tpl.Text := StringReplace(tpl.Text,'[titel]',kartenname.Text,[rfIgnoreCase]);
  randomize;

  for codeg := 1 to 540 do
  begin
    code[codeg] := inttostr(random(9)) + inttostr(random(9)) + inttostr(random(9)) + inttostr(random(9)) + inttostr(random(9)) + inttostr(random(9)) + inttostr(random(9)) + inttostr(random(9));
  end;

  for seiten := 1 to anzahl.Value do
  begin

    for vorgang1 := 1 to 27 do
    begin
      counter := counter + 1;
      tpl.Text := StringReplace(tpl.Text,'ccfg',code[counter],[rfIgnoreCase]);
      if st.ItemIndex = 1 then
      begin
        sect := 'teeny';
        ag := 'ST';
      end else
      begin
        sect := 'codes';
        ag := '';
      end;
      codeini.WriteString(sect, code[counter], inttostr(zeit.Value));
    end;

    for vorgang2 := 1 to 27 do
    begin
      tpl.Text := StringReplace(tpl.Text,'[z]',inttostr(zeit.Value)+' Minuten ' + ag,[rfIgnoreCase]);
    end;

    for vorgang3 := 1 to 27 do
    begin
      tpl.Text := StringReplace(tpl.Text,'krtn',kartenname.Text,[rfIgnoreCase]);
    end;

      datei := 'Seite' + inttostr(seiten) + '_' + inttostr(zeit.Value) + 'Min.html';
      tpl.Lines.SaveToFile(ordner + '\' + datei);

  end;

application.MessageBox('Codes erfolgreich generiert!', 'Info', 64);
shellexecute(0, 'open', pchar(dir + ordner), nil, nil, 1);
end;
MFG

EDIT: Code war unvollständig
  Mit Zitat antworten Zitat