AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AV in <TStringlist>.Count?!

Ein Thema von zahor · begonnen am 31. Aug 2008 · letzter Beitrag vom 31. Aug 2008
Antwort Antwort
zahor

Registriert seit: 27. Jun 2006
Ort: im hintersten Winkel des RAMs
182 Beiträge
 
Delphi 2007 Professional
 
#1

AV in <TStringlist>.Count?!

  Alt 31. Aug 2008, 00:08
Moin DP,
wie ihr vllt. wisst arbeite ich im Moment an Snakey Fusion - da führen xZise, mr_emre_d und ich die snakes von emre und xZise / mir zusammen.
nun bin ich auf ein äußerst merkwürdiges problem gestoßen: ich hab eine funktion geschrieben, die das spielfeld aus einem logfile ausliest.
ich habe jetzt eine TStringlist und ein array of array of byte (naja eig. TStatus, aber was ändert das schon). nun will ich FMap (das ist das array) eine Größe zuweisen.
dazu brauche ich mapp.count (mapp ist die stringlist) - aber das gibt mir ne AV! why? ich hab keine ahnung, und xZise hat den fehler auch nicht gefunden (vllt liegts auch an der uhrzeit?).
hier die komplette funktion:
Delphi-Quellcode:
procedure TArena.LoadFromLog(const AFileName: string);
var i,j:integer;
    myLog: tlogreader;
    mapp: tstringlist;
begin
  mapp := TStringlist.Create;
  myLog := TLogReader.Create(AFileName);
  myLog.Search('Arena');
  myLog.ReadSearchedObject(mapp,0);
  FHeight := mapp.Count;
  FWidth := length(mapp[2]);
  SetLength(FMap,FHeight,FWidth);
  for i := 2 to mapp.count - 1 do
  begin
    for j := 1 to length(mapp[i]) do
    begin
      if mapp[i][j] = '/'  then
        FMap[i,j] := stClear
      else if mapp[i][j] = '§then
        FMap[i,j] := stWall
      else
        showmessage('Error: Undefined character: '+mapp[i][j]);
    end;
  end;
  mapp.Free;
  myLog.Free;
end;
das komplette projekt findet ihr im anhang.

edit: TLogReader ist in uLog definiert; die ReadFromLog Stelle ist aus uArena
das mit TLogReader.Search sucht einen bestimmtem Abschnitt im Log, ist etwa so wie bei ner ini. readsearchedobject liest dann das gefundene und gibt es aus.
aber ich geh jetzt schlafen...
Angehängte Dateien
Dateityp: zip snakey_fusion_31.8._1_uhr_morgends___504.zip (294,5 KB, 7x aufgerufen)
Real Programmers always confuse Christmas and Halloween because Oct31 = Dec25. - Andrew Rutherford
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#2

Re: AV in <TStringlist>.Count?!

  Alt 31. Aug 2008, 00:11
kann es sein, dass .count < 0 ist?
  Mit Zitat antworten Zitat
zahor

Registriert seit: 27. Jun 2006
Ort: im hintersten Winkel des RAMs
182 Beiträge
 
Delphi 2007 Professional
 
#3

Re: AV in <TStringlist>.Count?!

  Alt 31. Aug 2008, 00:12
thx für die schnelle antwort! aber ich weiß es nicht - ich krieg da ja ne AV in der count funktion
Real Programmers always confuse Christmas and Halloween because Oct31 = Dec25. - Andrew Rutherford
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: AV in <TStringlist>.Count?!

  Alt 31. Aug 2008, 00:23
Das Problem ist nicht mapp.Count! Es ist FHeight!

Und wieso das? Weil FArena im Hauptmodul nicht erzeugt wurde!

Und das könnt ihr wieder mal nicht sehen, weil ihr die Bereichsprüfung nicht aktiviert habt!

Was mir noch aufgefallen ist...
Delphi-Quellcode:
procedure TLogReader.Search(const AName: string);
var
  i, strLen: Integer;
  cnt : Integer;
begin
  if FLog.Count > 2 then begin // <-- Einbauen!
    SetLength(FSearchPositions, FLog.Count - 2); // <-- böse, wenn FLog.Count = 0
und...
Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
begin
  Self.DoubleBuffered:=true;
Dann flackert die Anzege auch nicht mehr.

FArena wird in der Hauptform nur erzeugt, wenn ein Spiel gestartet wird. Es wird aber niemals freigeben!
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#5

Re: AV in <TStringlist>.Count?!

  Alt 31. Aug 2008, 00:23
wo kommt denn die fehlermeldung?

btw: solltet ihr euch angewöhnen, ressourcenschutzblöcke einzurichten und euere klassen auch wieder freizugeben...
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: AV in <TStringlist>.Count?!

  Alt 31. Aug 2008, 09:38
Zitat von omata:
Und wieso das? Weil FArena im Hauptmodul nicht erzeugt wurde!
Daran wirds wohl liegen. Aber das er dennoch rein springt irritiert etwas. Aber danach funktioniert es einwandfrei.

Zitat von omata:
Und das könnt ihr wieder mal nicht sehen, weil ihr die Bereichsprüfung nicht aktiviert habt!
Nanana... Ich habe diese Option aktiviert! Und man beachte, dass sie in Zeile 20 hochgegangen ist!

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
zahor

Registriert seit: 27. Jun 2006
Ort: im hintersten Winkel des RAMs
182 Beiträge
 
Delphi 2007 Professional
 
#7

Re: AV in <TStringlist>.Count?!

  Alt 31. Aug 2008, 10:02
danke oamata!
aber das {$R+} in uMain schaltet meines Wissens nach die Bereichsprüfung ein...
Real Programmers always confuse Christmas and Halloween because Oct31 = Dec25. - Andrew Rutherford
  Mit Zitat antworten Zitat
Roachford
(Gast)

n/a Beiträge
 
#8

Re: AV in <TStringlist>.Count?!

  Alt 31. Aug 2008, 11:27
Zitat von zahor:
aber das {$R+} in uMain schaltet meines Wissens nach die Bereichsprüfung ein...
Aber nur für die Unit ab der Position. Es ist immer empfehlenswert global die Berichsprüfung während der Entwicklung eines Projektes in den Projektoptionen zu aktivieren.
  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 13:04 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