Dateipfade unabhängig vom PC machen.

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
gillian_x
Beiträge: 30
Registriert: Sa 22. Nov 2014, 14:24

Dateipfade unabhängig vom PC machen.

Beitrag von gillian_x »

Hey ihr :)

In meinem Programm muss ich ziemlich viele Daten einlesen, verarbeiten und wieder speichern.
Diese Daten befinden sich alle in Textdateien und ich öffne sie mit LoadFromFile und dem vollständigem Dateipfad, der ja dann so aussieht:
C:\Users\Name\Desktop\Datei.txt
Wenn ich jetzt aber das Programm auf einem anderen PC laufen lassen will (natürlich befinden sich die Daten dann auch auf diesem PC), würde der Pfad ja nicht mehr stimmen.
Gibt es da irgendwas?

Danke für die Hilfe schon mal! :)

Komoluna
Beiträge: 565
Registriert: So 26. Aug 2012, 09:03
OS, Lazarus, FPC: Windows(10), Linux(Arch)
CPU-Target: 64Bit

Re: Dateipfade unabhängig vom PC machen.

Beitrag von Komoluna »

Lies die Umgebungsvariable %Userprofile% aus und häng "\Desktop" dran.
Das geht so:

Code: Alles auswählen

pathToDesktop := GetEnvironmentVariable('Userprofile')+'\Desktop';
MFG

Komoluna
Programmer: A device to convert coffee into software.

Rekursion: siehe Rekursion.

gillian_x
Beiträge: 30
Registriert: Sa 22. Nov 2014, 14:24

Re: Dateipfade unabhängig vom PC machen.

Beitrag von gillian_x »

Hätte ich dazu sagen sollen, ich weiß nicht wo das auf dem anderen PC landet.
Also ich packe alles in einen Ordner auf nen USB Stick und eine andere Person möchte das Programm dann auf ihrem PC laufen lassen.

AndreasMR
Beiträge: 98
Registriert: Di 4. Aug 2015, 15:29
OS, Lazarus, FPC: Linux, Raspbian, Windows
CPU-Target: 64/32 Bit

Re: Dateipfade unabhängig vom PC machen.

Beitrag von AndreasMR »

Hallo gillian_x,

dann würde ich einen FileRequester / OpenFileRequester aufrufen. Der Anwender wählt das Verzeichnis aus, in dem sich die Dateien befinden bzw. wählen den Datenträger aus, der FileRequester übergibt dann den Laufwerksamen bzw. das Verzeichnis.

Eine andere Möglichkeit habe ich auch einmal ausprobiert:
Das Programm durchsucht alle Laufwerke nach einem bestimmten Dateinamen. Das erste Laufwerk, auf dem sich diese Datei befindet, wird dann automatisch als Datenträger ausgewählt, der Laufwerksname übergeben und das Programm bearbeitet dann dieses Laufwerk bzw. die dort zu verarbeitenden Dateien.
Nach Deiner Beschreibung scheint diese Alternative der für den Anwender einfachere Weg zu sein.

Beste Grüße

Andreas
Ubuntu 14.04 LTS / Raspbian / Windows: Lazarus ab 0.9 bis 3.0

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Dateipfade unabhängig vom PC machen.

Beitrag von pluto »

Du musst wohl das Verzeichnis mit den Daten dem Programm einfach übergeben. Z.B. als Start Parameter.
Woher soll das Programm sonst wissen, wo die Daten sind?
Oder du brauchst eine Config Datei im Programm Ordner.

Alle Festplatten und CO zu durchsuchen würde viel zu lange dauern. Auf dauer.
MFG
Michael Springwald

Antworten