Einzelnen Beitrag anzeigen

Benutzerbild von xZise
xZise

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

Re: [TStringList] Problem mit einer Datei (bricht zu früh ab

  Alt 16. Sep 2006, 23:23
So... Ich habe das jetzt noch weiter umgewandelt und dabei stoße ich auf ein Problem:

Delphi-Quellcode:
function GetSigns(const FileName : string) : TStrArray;
var
  fs : TFileStream;
  Buffer : array [1..10000] of Char;
  Size : Integer;
// idx : Integer;
  i : Integer;
  BufferPos, StartPos : Integer;
  a : string;
begin
  SetLength(Result, 0);
// idx := 1;
  fs := TFileStream.Create(FileName, fmopenreadwrite or fmsharedenynone);
  try
    repeat
      Application.ProcessMessages;
      Size := (Fs.Size - Fs.Position);
      if Size > 10000 then
        Size := 10000;
      Fs.ReadBuffer(Buffer, Size);
      for i := 1 to Size do
      begin
        if Length(Result) = 0 then
          StartPos := 1;
        BufferPos := PosEx('<dep file="', Buffer, StartPos + 1);
        StartPos := BufferPos + 1;
        if (BufferPos > 0) then begin
          SetLength(Result, Length(Result) + 1);
          Result[High(Result)] := Copy(Buffer, BufferPos + 11, BufferPos + PosEx('"/>', Buffer, BufferPos));
        end;
      end;
    until fs.Position >= fs.Size;
  finally
   fs.Free;
  end;
end;
Und zwar funktioniert das Copy irgendwie net:
Code:
---------------------------
Autolocer
---------------------------
Any\Advertisement\SignRight.bik"/><dep file="Any\Advertisement\SignUp.bik"/><dep file="Any\Advertisement\SignWarning.bik"/><dep file="Any\Advertisement\SignWrongWay.bik"/><dep file="Any\Advertisement\TMSmallExit.bik"/><dep file="Any\Advertisement\Dynamic Ad1.dds"/><dep file="Any\Advertisement\Dynamic Ad2.dds"/><dep file="Any\Advertisement\Dynamic Ad3.dds"/><dep file="Any\Advertisement\pfeil_links.bik"/><dep file="Any\Advertisement\SignLeft.bik"/><dep file="Any\Advertisement\SignDown.bik"/><dep file="Any\Advertisement\PressForward.bik"/><dep file="Any\Advertisement\GamesserverAnim.bik"/><dep file="Any\Advertisement\Gamesserver.dds"/><dep file="Any\Advertisement\FullSpeed.bik"/></deps></header>
---------------------------
OK  
---------------------------
Das erhalte ich für Result[0] bei der anfangs erwähnten datei!

(PS: TStrArray = Stringarray)
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat