Einzelnen Beitrag anzeigen

Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#14

Re: Access Violation bei Dateizugriff Windows 7

  Alt 22. Jan 2010, 15:52
Hallo habe das gleiche Problem
egal ob in Vista oder XP und zwar in der folgenden
Procedure bei Strings.Add(S); knallt es.
Eine EAccessViolation hat wahrscheinlich was
mit JclUnicode.TWideStrings zu schaffen.

Delphi-Quellcode:
procedure ExtractStrings(Separator: WideChar; const Content: WideString;
  Strings: {$IFDEF COMPILER12_UP}TStrings{$ELSE}JclUnicode.TWideStrings{$ENDIF COMPILER12_UP});
var
  Tail: PWideChar;
  S: WideString;
  EOS: Boolean;
  ContentPtr: PWideChar;
begin
  ContentPtr := PWideChar(Content);
  if (ContentPtr = nil) or (ContentPtr^ = WideNull) or (Strings = nil) then
    Exit;

  Strings.BeginUpdate;
  try
    Tail := ContentPtr;

    repeat
      while (Tail^ <> Separator) and (Tail^ <> WideNull) do
        Inc(Tail);

      EOS := Tail^ = WideNull;

      SetLength(S, Tail - ContentPtr);
      Move(ContentPtr[0], S[1], (Tail - ContentPtr) * SizeOf(WideChar));
      Strings.Add(S);

      Inc(Tail);
      ContentPtr := Tail;
    until EOS;
  finally
    Strings.EndUpdate;
  end;
end;
[edit=SirThornberry]Delphi-Tags gesetzt - nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit]
Martin MIchael
  Mit Zitat antworten Zitat