AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Speichern von Daten in einen Array überschreibt vorherige
Thema durchsuchen
Ansicht
Themen-Optionen

Speichern von Daten in einen Array überschreibt vorherige

Ein Thema von Pitti911 · begonnen am 16. Feb 2009 · letzter Beitrag vom 17. Feb 2009
Antwort Antwort
Pitti911

Registriert seit: 28. Jan 2009
22 Beiträge
 
#1

Speichern von Daten in einen Array überschreibt vorherige

  Alt 16. Feb 2009, 18:23
Ich bins wieder

mancher mag sich vllt noch an mich erinnern

Es ist wieder relativ viel Quellcode aber ich bemühe mich nur das wichtigste zu schreiben den rest werd ich mit ... "rauskommentieren" und kurz schreiben was das macht

Das Problem ist das in der Datei 'hunter.dat' am ende immer nur der zuletzt eingefügte Datensatz steht und ich nicht weiß warum

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var users: file Of Thunter;
    hilf: array of Thunter;
    Bots: file of Tbot;
    bot:array of Tbot;
    tmpbot: Tbot;
    acc: string[40];
    c,fa,fb:boolean;
    i,k,j,p,l:integer;
    hs,hs2:string;
begin
  Button1.Enabled:=false;
  i:=0;
  c:=true;
  if Fileexists(ExtractFilePath(ParamStr(0))+'bots.dat') then
  Begin
// ... einlesen der vorhandenen Daten aus den Files das sollte eigentlich stimmen drum lass ich das hier weg ;) anzahl der Einträge in den Botlisten in k gespeichert
  Try
  If memo1.Lines.Count=2 then //Beginn einlese algorythmus aus dem Memo
  Begin
    hs:=memo1.lines[0];
    hs:=trim(hs);
    Acc:=hs;
    hs:=memo1.Lines[1];
    hs:=trim(hs);
    if hs[length(hs)]<>';then
    hs:=hs+';';
    fa:=true;
    repeat
// ... Die im Memo stehenden Daten werden zerlegt und in tmpbot abgespeichert
      for I := 0 to high(hilf) do
      Begin
        if ansilowercase(hilf[i].Acc)=ansilowercase(acc) then
        Begin
          fa:=false;
          hilf[i].Score:=hilf[i].Score+haddbot(tmpbot,hilf[i].botl);
        end
        ELSE
        Begin
          if (i=high(hilf)) and fa then
          Begin
            setlength(hilf,high(hilf)+2);
            fa:=false;
            hilf[i].Acc:=acc;
            hilf[i].Botl[0]:=tmpbot;
            case hilf[i].Botl[0].Botlvl of
                 0..90:hilf[i].Score:=1;
                91..94:hilf[i].Score:=2;
                95..96:hilf[i].Score:=4;
                    97:hilf[i].Score:=6;
                    98:hilf[i].Score:=10;
                    99:hilf[i].Score:=20;
            end;
          end;
        end;
      end;
      c:=addbot(tmpbot,bot);
      I:=0;
      if c then inc(k);
    until hs='';
  end;
  //ende des einlese algorythmus in Botlisten
  assignfile(bots,ExtractFilePath(ParamStr(0))+'bots.dat');
  Sortierb(bot);
  rewrite(bots);
  i:=0;
  while (i<=high(bot)) do
  Begin //hier is dann halt das speichern der Daten die in den Arrays stecken in die Dateien
    if bot[i].botname<>'then Write(bots,bot[i]);
    inc(i);
  end;
  Closefile(bots);
  //ende Botliste
  AssignFile(users,ExtractFilePath(ParamStr(0))+'hunter.dat');
  Rewrite(users);
  sortierH(hilf);
  i:=0;
  while (i<=high(hilf)) do
    Begin
      if hilf[i].Acc<>'then
      Write(users,hilf[i]);
      inc(i);
    end;
  closefile(users);
  Memo1.Text:='';
  Button1.Enabled:= true;
  Except
//Fehlerbehandlung (bei exceptions) die klappt auch ganz gut :D
  end;

end;


Bitte schimpft nicht zu sehr mit mir weil das schon wieder so viel Quelltext ist aber die Liste der Hunter will einfach immer nur den zuletzt gespeicherten behalten

und das Forum is einfach SUPI
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Speichern von Daten in einen Array überschreibt vorherig

  Alt 16. Feb 2009, 18:27
Hast du mal im Debugger geprüft, wie oft "write" aufgerufen wird?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Pitti911

Registriert seit: 28. Jan 2009
22 Beiträge
 
#3

Re: Speichern von Daten in einen Array überschreibt vorherig

  Alt 16. Feb 2009, 19:25
ich habs grad ausprobiert (wenn alles laufen sollte wie ich will sollte es zwei mal ausgeführt werden)
aber das Programm hat die Anweisung nur ein mal ausgeführt

€DIT: Kann man das auch anders überprüfen als jede Zeile einzeln ausführen zu lassen und zu zählen?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Speichern von Daten in einen Array überschreibt vorherig

  Alt 16. Feb 2009, 21:10
über debugger so:
Du setzt ein breakpoint an die stelle (F5)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Pitti911

Registriert seit: 28. Jan 2009
22 Beiträge
 
#5

Re: Speichern von Daten in einen Array überschreibt vorherig

  Alt 17. Feb 2009, 09:25
ja ok so hab ich das ja auch gemacht aber hat jemand eine Ahnung warum Write nur ein mal ausgeführt wird? und kann ich mir die Datensätze iwie Anzeigen lassen so wie sie in dem Array stehen?
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Speichern von Daten in einen Array überschreibt vorherig

  Alt 17. Feb 2009, 09:28
Schua mal im Menu Start, da gibt es so sachen, wie "Ausdruck hinzufügen" [Strg][F5], "Auswerten/ändern" [Strg][F7] .... Damit kannst du alle Werte überwachen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Pitti911

Registriert seit: 28. Jan 2009
22 Beiträge
 
#7

Re: Speichern von Daten in einen Array überschreibt vorherig

  Alt 17. Feb 2009, 11:24
das mit dem Werte überwachen hab ich nicht gemacht aber mir ist aufgefallen dass ich beim einlesen 'Hunter.dat' und bei der Ausgabe 'hunter.dat' geschrieben hatte das problem ist jetzt behoben allerdings wird jetzt immer der Wert der schon in der Datei stand einfach nur dupliziert

ich hab also nicht wirklich was verändert nur stimmen jetzt die Dateibezeichnungen auch überein

Edit:
Ich depp man sollte doch das überprüfen was in den Dateien steht^^
da wird jetzt wenigstens alles korrekt gespeichert also muss der Fehler wohl oder übel in der Ausgabe liegen. Allerdings werde ich mich damit erstmal selber befassen
  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 14:37 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