Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Resourcen in TStringlist konvertieren (https://www.delphipraxis.net/63931-resourcen-tstringlist-konvertieren.html)

Alexander Roth 24. Feb 2006 18:43


Resourcen in TStringlist konvertieren
 
Hallo Praxisler,

also mein Problem sind die Resourcen.
Ich würde gerne eine (vorhandene) Resource einbinden und in eine TStringlist umwandeln.
Wie kann man das machen?

Luckie 24. Feb 2006 18:46

Re: Resourcen in TStringlist konvertieren
 
Deine Fragestellung ist absolut unzureichend. Denn ich glaube nicht, dass du eine Bitmap Ressource in eine StringListe bekommst.

Alexander Roth 24. Feb 2006 18:50

Re: Resourcen in TStringlist konvertieren
 
Nein, ich habe einen ganz normalen text (liste) als Resource eingebunden.
Leider weis nich nicht wie man auf diese zugreift und sie in andere leicht handzuhabende Formate konvertiert.

Luckie 24. Feb 2006 18:52

Re: Resourcen in TStringlist konvertieren
 
Erster Ansatz ist immer die Hilfe oder die Forensuche nach TResourceStream.

Bernhard Geyer 24. Feb 2006 19:14

Re: Resourcen in TStringlist konvertieren
 
In der Jedi Code Libray gibt es einen Resourcenexplorer. Dieser sollte genügend Code liefern um das gewünschte zu erreichen.

Alexander Roth 25. Feb 2006 07:32

Re: Resourcen in TStringlist konvertieren
 
Ich schaue mir den Code an.

marabu 25. Feb 2006 08:13

Re: Resourcen in TStringlist konvertieren
 
Hallo Alexander,

eigentlich brauchst du nicht viel Code. Nehmen wir an du hast eine RC-Datei TEXT.RC mit diesem Inhalt:

Code:
TEXT1 RCDATA LOADONCALL "C:\Daten\Texte\Text1.txt"
Wenn du sie mit BRCC32 kompiliert hast, dann kannst du den Inhalt der Datei Text1.txt so einlesen:

Delphi-Quellcode:
{$R TEXT.RES}

const
  RN_TEXT = 'TEXT1';

procedure TDemoForm.LoadButtonClick(Sender: TObject);
var
  rs: TResourceStream;
begin
  with TResourceStream.Create(0, RN_TEXT, RT_RCDATA) do
  begin
    Memo.Lines.LoadFromStream(rs);
    Free;
  end;
end;
Grüße vom marabu

Alexander Roth 25. Feb 2006 08:18

Re: Resourcen in TStringlist konvertieren
 
Klasse. Danke. Das hilft mir kräftig weiter.

Alexander Roth 25. Feb 2006 08:57

Re: Resourcen in TStringlist konvertieren
 
Ok mir bringt er da einen Fehler:

Fehler:
Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Primfaktoren.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004B047F in Modul 'Primfaktoren.exe'. Lesen von Adresse 788366BF'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

Ich habe den Code ein bisschen abgewandelt und der Fehler bleibt der gleiche:
Delphi-Quellcode:
var rs:TResourceStream;
    sl:Tstringlist;
begin
sl:=Tstringlist.Create;
with TResourceStream.Create(0,'mytext',PChar('RT_RCDATA')) do
  begin
  sl.LoadFromStream(rs);
  free;
  end;
showmessage(sl[1]);
sl.Free;

Was produziert den Fehler?

--
Edit: Dummer, dummer Fehler.
--

Sharky 25. Feb 2006 09:36

Re: Resourcen in TStringlist konvertieren
 
Hai Alexander,

Du musst die TStringList (sl) erst erzeugen bevor Du damit arbeiten kannst.
Das könnte zum Beispiel so aussehen:

Delphi-Quellcode:
var rs:TResourceStream;
    sl:Tstringlist;
begin
  sl := TStringList.Create;
  try
    with TResourceStream.Create(0,'mytext',PChar('RT_RCDATA')) do
    begin
      sl.LoadFromStream(rs);
      free;
    end;
  showmessage(sl[1]);
  finally
    sl.Free;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr.
Seite 1 von 2  1 2      

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