![]() |
Stringlist in Resource speichern schlägt fehl
Hallo zusammen,
ich habe eine Textdatei, die ich als RCDATA in eine res - Datei unter dem Namen 'orgstring' einbinde. Diese lade ich dann zur Laufzeit in eine Stringlist mit folgendem Code
Delphi-Quellcode:
was sehr gut funktioniert.
procedure TForm1.Button3Click(Sender: TObject);
Var mystream : TresourceStream; begin myStream := Tresourcestream.Create(HInstance, 'orgstring', RT_RCDATA); sl.LoadFromStream(mystream); mystream.free; end; Zur Laufzeit ändern sich jetzt die Daten in der Stringlist und so möchte ich die Resource aktualisieren. Folgender Code scheitert
Delphi-Quellcode:
weil man wohl aus resource - Streams nur lesen kann.
procedure TForm1.Button2Click(Sender: TObject);
Var mystream : TresourceStream; begin myStream := Tresourcestream.Create(HInstance, 'orgstring', RT_RCDATA); sl.SavetoStream(mystream); mystream.Free; end; Aber wie kann ich das Problem jetzt lösen? Mit der Suche nach folgenden Begriffen: BeginUpdateResource, UpdateResource & EndUpdateResource habe ich zwar einige Code - Beispiele gefunden, aber mit keinem konnte ich mein Problem wirklich lösen. Ich hoffe, jemand kann mir weiterhelfen. Danke, und bis dann der BetaBot. |
Re: Stringlist in Resource speichern schlägt fehl
1. falsche Sparte
im es mal "nett" auszudrücken: Es wäre schön, wenn du bitte endlich mal deine Beiträge in der RICHTIGEN Sparte eröffnest :warn: (nahezu alle deine Beiträge befinden/befanden sich Anfangs immer in "Neuen Beitrag zur Code-Library hinzufügen", welches nunmal komplett falsch ist) 2. in den "eigenen" Resourcen kann man nicht speichern Das würde bedeuten die Datei wöllte sich selber verändern wollen, aber da sie ja läuft und demnach bereits geöffnet ist und das OHNE Sharing-Rechte für's Schreiben. Schau dich mal nach ![]() ![]() Dieses ist für sowas gedacht, läßt sich aber nicht auf laufende Anwendungen anwenden. |
Re: Stringlist in Resource speichern schlägt fehl
1. Entschuldigung für die falsche Sparte, aber als ich meinen ersten Beitrag ins Forum stellte, habe ich erst lange gesucht, um das tun zu können und das war dann nunmal hier. Weil ich aber nicht ermahnt wurde, behielt ich das so bei. Ich werde mich für folgende Beiträge aber besser informieren. Mein Fehler, sorry.
2. ich habe UpdateResource mit folgendem Code
Delphi-Quellcode:
hier entnommen:
var
Pfad: AnsiString; hInst: cardinal; begin Pfad:= 'C:\Test.exe'; if FileExists(Pfad) then begin hInst := BeginUpdateResource(Pchar(Pfad), false); if hInst > 0 then try UpdateResource(hInst, RT_RCDATA, 'MYTEXT', LANG_NEUTRAL, @memo1.Text[1], length(memo1.Text)); finally EndUpdateResource(hInst, false); end; end; ![]() Also, greife ich hier auf ein anderes Programm zu, 'MYTEXT' ist bei mir 'orgstring' und 'Memo1.Text' = 'mywidestring' in dem ich die TNTStringlist gespeichert habe. Allerdings funktioniert es nicht. Die Resource wird nicht 'upgedated' und an anderer Stelle habe ich gelesen, dass das vielleicht am Pointer (@mywidestring[1]) u/o an der Größe (length(mywidestring)) liegen kann. Weiß hier jemand Antwort, oder hat einen Vorschlag, wie ich die Stringlist in eine fremde Resource schreiben kann? |
DP-Maintenance
Dieses Thema wurde von "SirThornberry" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Object-Pascal / Delphi-Language" verschoben.
|
Re: Stringlist in Resource speichern schlägt fehl
UpdateResource und auch BeginUpdateResource liefern per
![]() und diesen Fehlercode sollte man grundsätzlich erstmal auswerten. Zitat:
Zitat:
Zitat:
Und meißt steht dort auch nochmal ein Grund drinnen. Sowas wird manuell von einem Moderator erledigt und es würde massig Arbeit ersparen, wenn viele gleich das richtige Unterforum verwenden würden. Einfach auf der Startseite diesem Link folgen http://www.delphipraxis.net/images/portal_arrow.gif...weiter ins Forum...http://www.delphipraxis.net/images/portal_arrow_up.gif, da dann in ein passendes Forum und dort den neuen Beitrag über [Neues Thema] erstellen :) Hattest du diese Forenübersicht nicht gefunden, oder woran lag es, daß du keinen passenden Ort fandest? Wir versuchen das Forum ja zu verbessern, nur müssen wir wissen wo es hängt. (du bist ja nicht der Einzige mit diesem "Problem") |
Re: Stringlist in Resource speichern schlägt fehl
Auch wenn es diesmal keine konkrete Lösung für mein Problem gibt, so hat sich doch herausgestellt, dass sie in ResourceUpdate unter Auswertung von GetLastError zu finden ist. Also bin ich ein Stück weiter. Danke dafür.
Zur Problematik des sich "ständig" verlaufenden Users hoffe ich hier ![]() Alles Gute, der BetaBot. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz