Forum: Programmieren allgemein
Delphi
by Dalai,
6. Mai 2018
Nicht splitten sondern das Komma suchen (z.B. mit Pos) und ab der Position die Zahl extrahieren.
Grüße
Dalai
Forum: Programmieren allgemein
Delphi
by Dalai,
6. Mai 2018
OK, ich beschreibe nochmals den Weg, den ich gehen würde, ausgehend von der folgenden Struktur des indirekten Ressourcen-Strings (völlig egal ob für Strings, Icons oder sonstwas) - @<Pfad_zur_Datei>,-<ID_der_Ressource>:
das @ am Anfang entfernen
Die ID am Ende des Strings extrahieren, also alles vom Ende des Strings bis zum Komma und in einem Integer, DWORD oder so speichern, und anschließend...
Forum: Programmieren allgemein
Delphi
by Dalai,
6. Mai 2018
@HolgerX:
Schau mal auf die von Emil geposteten Bilder - es geht nicht um Slash und Backslash sondern um ein völlig anderes Zeichen auf dem koreanischen System.
Richtig, wenn auch nicht den Pfad sondern den Inhalt des Ressourcen-Strings.
Soweit klar.
Hab ich nicht drauf geachtet, weil ich annahm, dass du den von mit vorgeschlagenen Weg mal ausprobierst. Dann ist es nämlich völlig egal,...
Forum: Programmieren allgemein
Delphi
by Dalai,
6. Mai 2018
Hängt aber vielleicht davon ab, welches Programm gerade Audio abspielt. Und wer sagt, dass Microsoft diese Umgebungsvariable in Zukunft dort belässt?
Ich hab eben in meinem Post oben die Deklaration der Funktion ergänzt und den Code etwas optimiert und gekürzt.
Tja, so ist das; aber immerhin etwas. Der Vorteil von SHLoadIndirectString ist, dass es auch für die Ressourcen-Strings dieser...
Forum: Programmieren allgemein
Delphi
by Dalai,
6. Mai 2018
Entsorge das StringReplace für die Umgebungsvariablen, denn das ist Unsinn - wer sagt, dass dort immer %SystemRoot% steht? Nutze stattdessen das schon erwähnte ExpandEnvironmentStrings. Dann würde ich nie mit festen Längen arbeiten, um an den Icon-Index zu kommen sondern mich immer an dem Komma orientieren, denn es gibt keine feste Länge für Ressourcen-Indices! Und wie gesagt: für...
Forum: Programmieren allgemein
Delphi
by Dalai,
6. Mai 2018
Gar nicht in Einzelteile zerlegen, sondern diesen String direkt an SHLoadIndirectString übergeben, jedenfalls im Falle von String-Ressourcen. Für Icons hab ich bisher leider nichts vergleichbares gefunden.
Eine manuelle Verarbeitung - die ich nur für Nicht-String-Ressourcen machen würde - würde ich so angehen: das @ entfernen, ExpandEnvironmentStrings benutzen, um etwaige Umgebungsvariablen zu...