Einzelnen Beitrag anzeigen

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