AGB  ·  Datenschutz  ·  Impressum  







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

Textdatei in Ressource und in StringList laden

Ein Thema von Cubysoft · begonnen am 7. Aug 2015 · letzter Beitrag vom 7. Aug 2015
Antwort Antwort
Cubysoft

Registriert seit: 5. Sep 2014
Ort: Ludwigshafen
76 Beiträge
 
Delphi XE8 Professional
 
#1

Textdatei in Ressource und in StringList laden

  Alt 7. Aug 2015, 18:11
Hallo,

ich würde meine Sprachdateien (Textdateien) gerne direkt in das Programm einbinden. Ich habe die Dateien bereits als RCDATA eingebunden, finde aber irgendwie keine Möglichkeit die Daten in eine StringList zu laden. Leider hat die StringList ja keine .LoadFromRessource Funktion...

Wisst ihr, wie das geht? Würdet mir echt helfen..

Danke
Tobias
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Textdatei in Ressource und in StringList laden

  Alt 7. Aug 2015, 20:22
Hallo,

Leider hat die StringList ja keine .LoadFromRessource Funktion...
Wisst ihr, wie das geht? Würdet mir echt helfen..

Danke
...aber LoadFromStream

Ich lade wie folgt eine Sprachdatei in den Localizer von DevExpress:

Delphi-Quellcode:
procedure DXLocalize;
Var
  AStream: TResourceStream;
  AHandle: THandle;
  ADllFileName: string;
  ALocaleId: Integer;
begin

  ADllFileName := ExtractFilePath(Application.ExeName) + dxLangDLL;
  ALocaleId := AppConfig.ReadInteger('System', 'LocaleId', 1031);
  Assert(FileExists(ADllFileName));
  if not FileExists(ADllFileName) then
    Exit;
  AHandle := LoadLibraryEx(PChar(ADllFileName), 0, LOAD_LIBRARY_AS_DATAFILE);
  if AHandle > HINSTANCE_ERROR then
  begin
    try
      AStream := TResourceStream.Create(AHandle, 'CXLOCALIZER', RT_RCDATA);
      try
        if AStream.Size > 0 then
        begin
          AStream.Position := 0;
          Localizer.LoadFromStream(AStream);
          Localizer.Locale := ALocaleId;
          Localizer.Active := True;
        end;
      finally
        AStream.Free;
      end;
    finally
      FreeLibrary(AHandle);
    end;
  end
  else
    raise Exception.Create('Fehler beim Laden ' + ADllFileName);
end;
Ich hoffe, das Beispiel hilft dir weiter

Frank
Frank Reim
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#3

AW: Textdatei in Ressource und in StringList laden

  Alt 7. Aug 2015, 20:28
ungetestet auf die Schnelle
Delphi-Quellcode:
procedure CreateStringListFromResource(const ResourceName: String; const SL: TStringList);
var
  s: string;
begin
with TResourceStream.Create(HInstance, ResourceName, RT_RCDATA) do
     begin
     setlength(s, Size div 2); // Widestring braucht 2 bytes pro Zeichen
     Read(s[1], Size);
     free;
     end;
SL.text := s;
end;
  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 09:19 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