AGB  ·  Datenschutz  ·  Impressum  







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

CSV integrieren in Projekt

Ein Thema von DerMondistunsereSonne · begonnen am 4. Sep 2024 · letzter Beitrag vom 4. Sep 2024
Antwort Antwort
DerMondistunsereSonne

Registriert seit: 9. Apr 2024
40 Beiträge
 
Delphi 12 Athens
 
#1

CSV integrieren in Projekt

  Alt 4. Sep 2024, 15:04
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
691 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: CSV integrieren in Projekt

  Alt 4. Sep 2024, 15:44
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.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#3

AW: CSV integrieren in Projekt

  Alt 4. Sep 2024, 15:45
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;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DerMondistunsereSonne

Registriert seit: 9. Apr 2024
40 Beiträge
 
Delphi 12 Athens
 
#4

AW: CSV integrieren in Projekt

  Alt 4. Sep 2024, 15:49
Danke für die Antworten, ich probiere es mal!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: CSV integrieren in Projekt

  Alt 4. Sep 2024, 16:56
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.
$2B or not $2B

Geändert von himitsu ( 4. Sep 2024 um 17:03 Uhr)
  Mit Zitat antworten Zitat
DerMondistunsereSonne

Registriert seit: 9. Apr 2024
40 Beiträge
 
Delphi 12 Athens
 
#6

AW: CSV integrieren in Projekt

  Alt 4. Sep 2024, 17:01
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.
  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 17:21 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