Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Speichern Von daten aus einem array endet in leerer Datei (https://www.delphipraxis.net/128406-speichern-von-daten-aus-einem-array-endet-leerer-datei.html)

Pitti911 31. Jan 2009 13:35

Re: Speichern Von daten aus einem array endet in leerer Date
 
ok

das problem war ja hauptsächlich das ich am anfang noch nich wusste wo denn genau der fehler liegt :( bzw das gebiet in dem er liegt

wenn ich das gewusst hätte hätt ich auch sicher nur die neuen Typen und das wichtige gepostet :roll:

Teekeks 31. Jan 2009 13:52

Re: Speichern Von daten aus einem array endet in leerer Date
 
könnte es daran liegen?
Delphi-Quellcode:
    Bots: file of Tbot;
    bot:array of Tbot;
Der File ist doch nur für Einen Wert von TBot und nicht für ein ganzes Array of TBot. Oder?

DeddyH 31. Jan 2009 13:58

Re: Speichern Von daten aus einem array endet in leerer Date
 
Neenee, das ist schon richtig so.

Pitti911 31. Jan 2009 15:07

Re: Speichern Von daten aus einem array endet in leerer Date
 
ok das mit dem speichern in der datei hab ich jetzt anders gelöst aber es hat sich mir ein weiteres Problem offenbart :( die Maximale Zeichenlänge bei

Delphi-Quellcode:
Type Thunter =record              
            Acc: String[40];
            Bots: String[255]; //genau hier da hätt ich gerne Mehr platz weil die Anzahl doch die 255 leicht übersteigt
            Score: Integer;
            end;
geht das iwie? also gibt es einen Finalisierten string typ der mehr als 255 zeichen erlaubt? (wenn der nich Finalisiert ist mag delphi die datensätze nich speichern)

und @Teekeks: wie deddyH schon gesagt hat is das schon so richtig :D

@alle: btw is mir relativ egal wie optimal oder auch nich das geschrieben is ich weiß das es sicher schnellere wege gibt^^ und auch vom speicherbedarf her günstigere aber wenn ich sehe das meine Dateien nach 2 einträgen noch nich mal ein KB ausfüllen is mir das doch relativ egal vor allem wenn man bedenkt das 1024MB RAM zur Zeit absolutes Minimum sind wenn man sich nen neuen PC kauft^^ und auch für die Processoren macht das keinen großen unterschied.
und mehr als 100 Einträge wird es wohl nie in einer der beiden Dateien geben :D selbst wenn wär der speicherbedarf immer noch lachhaft

Klaus01 31. Jan 2009 15:13

Re: Speichern Von daten aus einem array endet in leerer Date
 
Habe mal einen Kommentar eingefügt.
Delphi-Quellcode:
Repeat
    c:=true;
    p:=pos(' ',hilf[i].Bots);
    tmpbot.Botname:=copy(hilf[i].Bots,1,p-1);
    Delete(hilf[i].Bots,1,p);
    hilf[i].Bots:=trim(hilf[i].bots);
    p:=pos(';',hilf[i].Bots);
    tmpbot.Botlvl:=strtoint(copy(hilf[i].Bots,1,p-1));
    j:=0;
    While (j<=high(bot)) AND c do
      Begin
        // c wird hier false, wenn bit[j].BotName=tmpbot.BotName und bot[j].Botname <> ''
        // und c wird in dieser Schleife nie wieder true. Ist das so gewollt?
        if (ansilowercase(bot[j].Botname)=ansilowercase(tmpbot.Botname)) And (Not (bot[j].Botname='')) then
        Begin
          c:=false;
          if tmpbot.Botlvl>bot[j].Botlvl then bot[j].Botlvl:=tmpbot.Botlvl;
        end
        ELSE
        Begin
          if c then
          Begin
            bot[j]:=tmpbot;
          end;
        end;
        inc(j);
      end;
    inc(i);
  until i=high(hilf);
Grüße
Klaus

Klaus01 31. Jan 2009 15:19

Re: Speichern Von daten aus einem array endet in leerer Date
 
Zitat:

Zitat von Pitti911
ok das mit dem speichern in der datei hab ich jetzt anders gelöst aber es hat sich mir ein weiteres Problem offenbart :( die Maximale Zeichenlänge bei

Delphi-Quellcode:
Type Thunter =record              
            Acc: String[40];
            Bots: String[255]; //genau hier da hätt ich gerne Mehr platz weil die Anzahl doch die 255 leicht übersteigt
            Score: Integer;
            end;

Du willst die Bots alle in einem String speichern?
Besser geeignet wäre da doch ein Array

Delphi-Quellcode:
Type
  Thunter =record              
    Acc: String[40];
    Bots: Array [0..100] String[15];
    Score: Integer;
 end;
Geeigneter als eine Statisches Array wäre aber ein dyn. Array oder eine TList.
Dann ginge da mit dem Speichern aber nicht mehr so einfach.

Grüße
Klaus

Pitti911 31. Jan 2009 17:01

Re: Speichern Von daten aus einem array endet in leerer Date
 
das mit dem statischen Array is wahrscheinlich die beste idee :D

aber wenn dann werd ich den array wohl gleich als Array of Tbot schreiben :D
da wird die ausgabe zwar wieder etwas komplizierter aber naja was solls :D
hoffentlich geht dann alles glatt^^ also das ich einmal den quelltext ohne Fehler schreibe xD

vllt sollt ich doch mal mit so nem komischen "diagramm" das meine Lehrer immer Predigen anfangen :D
obwohl eigentlich is ja grade das diagramm immer in meinem kopf xD nur helfen tuts bei solchen probs nie^^
aber iwo muss es doch ne möglichkeit geben nen längeren Finalisierten string als den 255er geben :gruebel: da müsst ich nämlich nix mehr ändern^^ weil das speichern an sich klappt schon nur dass ich immer zu wenig zeichen habe und darum das dann oftmals nix wird :(

mal schaun ich werd das noch iwie lösen wenn keiner nen finalisierten string kennt

DeddyH 31. Jan 2009 17:05

Re: Speichern Von daten aus einem array endet in leerer Date
 
*Puh* nach diesem Post möchte ich Dich bitten, das hier einmal in Ruhe durchzulesen: http://www.delphipraxis.net/internal...t.php?t=147368

nuclearping 31. Jan 2009 17:06

Re: Speichern Von daten aus einem array endet in leerer Date
 
Zitat:

hoffentlich geht dann alles glatt^^ also das ich einmal den quelltext ohne Fehler schreibe xD
Ich hab gehört, es soll helfen, wenn man erstmal versteht was man machen will, bevor man drauflos programmiert.

Pitti911 31. Jan 2009 17:41

Re: Speichern Von daten aus einem array endet in leerer Date
 
@DeddyH: Ich weiß nicht wirklich was dein Problem ist. Meine Grundfrage war ja, nachdem ich die Probleme die ich vorher hatte gelöst habe, ob es einen Finalisierten Stringtyp gibt der mehr als die 255 Zeichen (enstrpechend ein shortstring) speichern kann. Falls sich dein Post auf das "TBot" bezieht

hier wie eben jener Typ deklariert ist:
Delphi-Quellcode:
Type Tbot = record
              Botname:string[40];
              Botlvl: byte;
            end;
ansonsten war die mein Problem ja klar. Falls nicht würde ich gerne darauf Verzichten hier darüber zu streiten und das per PM klären.
€: ok vllt bezieht sich das ja auch auf meine Rechtschreibung/Zeichensetzung aber ich glaube nicht das das ein Grund ist auf so ein Tutorial zu verlinken. In einem solchen Fall hätte auch ein netter Hinweiß wie
"achte in Zukunft bitte besser auf deine Rechtschreibung" diesen Zweck erfüllt. Falls es sich auf die Recherche bezieht muss ich sagen das ich mit dem Internet schon oft die Erfahrung gemacht habe das man oft nicht alles findet, vorallem bei doch schon etwas "spezielleren" wünschen.

@nuclearping: also ich möchte nur mal sagen das ich im Grunde schon weiß was ich machen will. Nur weil ich geschrieben habe "hoffentlich geht dann alles glatt^^ also das ich einmal den quelltext ohne Fehler schreibe xD" geschrieben habe bedeutet das noch lange nicht das ich einfach so "drauflos programmiere" das bezog sich wohl eher darauf das ich oftmals einfach nur echte Anfängerfehler mache die mir beim schreiben des Quelltextes nicht auffalen. Wie z.B. eine Variable zurückzusetzen in einer Schleife in der ich diese wieder brauche oder ähnliches. Ich hoffe du verstehst was ich meine.

konstruktive Kritik wie die von Klaus01 oder hinweise wo der Fehler liegen könnte nehme ich dankend an. Jedoch kann ich auf Kommentare wie:

Zitat:

Zitat von nuclearping
Ich hab gehört, es soll helfen, wenn man erstmal versteht was man machen will, bevor man drauflos programmiert.

getrost verzichten. :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 Uhr.
Seite 2 von 3     12 3      

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