AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Integerwert setzt sich nach for schleife zurück
Thema durchsuchen
Ansicht
Themen-Optionen

Integerwert setzt sich nach for schleife zurück

Ein Thema von delphis spassbremse · begonnen am 14. Feb 2007 · letzter Beitrag vom 14. Feb 2007
Antwort Antwort
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
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Integerwert setzt sich nach for schleife zurück

  Alt 14. Feb 2007, 16:52
wenn ich dich richtig verstehe, musst du "counter" global deklarieren. (und bitte auch initialisieren, im FormCreate-Ereignis z.B.)
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
delphis spassbremse
(Gast)

n/a Beiträge
 
#3

Re: Integerwert setzt sich nach for schleife zurück

  Alt 14. Feb 2007, 16:58
das hab ich auch schon probiert.... nützt auch nix...
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Integerwert setzt sich nach for schleife zurück

  Alt 14. Feb 2007, 20:58
Delphi-Quellcode:
begin
  ordner := '.\codeliste\' + getdate + '-' + gettime;
  mkdir(pchar(ordner));

  counter := 0; <-- vielleicht diese Zeile entfernen, wenn die Variable global ist
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Integerwert setzt sich nach for schleife zurück

  Alt 14. Feb 2007, 21:03
Randomize sollte man übrigens nur 1 mal beim programmstart aufrufen und nicht immer wieder.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Integerwert setzt sich nach for schleife zurück

  Alt 14. Feb 2007, 21:28
Du gehst ein geringes aber nicht zu vernachlässigendes Risiko ein, das die 540 codes nicht doch doppelt vorkommen. 8-Stellige Zufallszahlen bekommst Du auch mit dem Mersenne-Twister, und die sind dann garantiert (innerhalb der 540 Codes) eindeutig. Oder Du prüfst. ob einer der Codes nicht schon generiert wurde. Oder (würde ich machen), Du nimmst GUIDs.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 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