![]() |
CSV integrieren in Projekt
Moin,
weiß nicht, ob es der richtige Teil des Forums ist, sonst einfach verschieben. Ich möchte gerne 2 Listen (CSV-Dateien) in mein Prokjet integrieren, so dass diese mit dem Kompilat weitergegeben werden können. Als einzelne Datei möchte ich es nur ungerne machen. Spricht etwas dagegen oder gibt es "bessere" Varianten? Die Listen ändern sich kaum. Da die Listen allerdings sehr lang sind, möchte ich nicht eine separate Klasse daraus machen. |
AW: CSV integrieren in Projekt
Du brauchst keine extra Klasse um eine CSV Datei zu parken.
Wobei ich es durchaus sinnvoll finde gerade große Dateien extern liegen zu lassen. Du kannst die Datei ja komprimieren und/oder verschlüsseln, wenn du glaubst sie vor angucken schützen zu müssen. Oder mach Ressourcen-Strings draus und pack sie mit in die Exe. Kompimieren macht aber auch da Sinn. |
AW: CSV integrieren in Projekt
Um die CSV-Datei als Ressource einzubinden, öffnest du im Menü Projekt - Ressourcen und Bilder. Dort über Hinzufügen... die Datei auswählen (dazu auf Alle Dateien... umstellen). Einen sinnvollen Ressoucenbezeichner angeben und, falls nicht schon geschehen, den Ressourcentyp auf RCDATA stellen.
Im Programm kannst du dann die CSV-Datei über einen TResourceStream laden. So geht das z.B. in eine TStringList:
Delphi-Quellcode:
var
stream: TResourceStream; CSV: TStringList; begin ... stream := TResourceStream.Create(HInstance, <Ressoucenbezeichner>, RT_RCDATA); try CSV.LoadFromStream(stream, TEncoding.ANSI); // oder was auch immer die Datei für ein Encoding hat. finally stream.Free; end; ... end; |
AW: CSV integrieren in Projekt
Danke für die Antworten, ich probiere es mal!
|
AW: CSV integrieren in Projekt
Jo, anstatt selbst die Resource manuell einzubinden (eigene *.rc bzw. *.res und die womöglich noch manuell kompilieren, oder an der Projekt-Res rumfummeln), einfach die Ressource Datei im Ressourcenmanager einbinden
> Menü > Projekt > Ressourcen und Bilder Aber im Ressourcenbezeichner keine Punkte, z.B. wenn den Dateinamen als Bezeichner nutzen möchte. Der Bezeichner ist dann das, was du z.B. beim TResourceStream angibst. Der Zugriff via TResourceStream bleibt also gleich. Achtung: Beim Kompilieren direkt via DCC*.exe nicht, aber beim Kompilieren in Delphi, sowie über MSBuild (*.dproj), wird quasi im BeforeBuild immer die Datei erneut in der *.dres aktualisiert, welche anschließend in deiner *.DPR/DPK importiert wird. |
AW: CSV integrieren in Projekt
Danke für den Tipp, leider sind unsere Dateinamen sehr gewöhnungsbedürftig, da freut man sich schon mal über Klartext ;)
Hat übrigens alles geklappt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 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