Autor Beitrag
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Fr 07.12.18 14:34 
Hallo,

ich programmiere mit Lazarus und schreibe zur Zeit ein GUI für ein Kommandozeilenprogramm. Bei dem Programm werden Dateien erstellt, die ich auslese und anschließend wieder lösche. Gibt es auch eine Möglichkeit, z.B. mit MMF, die Dateien in den Speicher zu schreiben. Dann würde ich mir die temporäre Datei sparen. Hab zu dem Thema nichts gefunden. Ist das grundsätzlich möglich?

Viele Grüße
Richard
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8720
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 07.12.18 15:57 
Wenn Du Einfluss auf das zu steuernde Programm hast, könntest Du schauen, dass das Programm die Daten auch via Standard-Eingabe entgegennimmt. In dem Fall, oder wenn das Programm dies eh bereits tut, kannst Du in deiner GUI die Daten über eine Pipe an den Kindprozess übergeben, ohne den Umweg über's Dateisystem gehen zu müssen. Leider ist das unter Windows aber nicht unbedingt die performanteste Lösung (IIRC).

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
rushifell Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Fr 07.12.18 19:17 
Danke. Es ist eine Fremdanwendung, der ich als Parameter den Pfad einer Eingabedatei und den Pfad einer Ausgabedatei übergebe. Die Ausgabedatei wird von mir ausgewertet und anschließend nicht mehr benötigt. Ansonsten lese ich die Ausgabe der Konsole und verwende dafür TProcess, wie gesagt in Lazarus. Bei einer eigenen Anwendung hätte ich das über ein MMF gelöst. Das habe ich schon mal irgendwann in Delphi programmiert, um Daten zwischen zwei Anwendung auszutauschen.

Also bleib ich bei den temprären Dateien. Eine Frage hätte ich dazu. Ist es für die Speicherverwaltung von Windows besser, wenn ich die Dateien im Temporären Ordner von Windows speichere oder spielt der Speicherort keine Rolle? Zur Zeit benutze ich ein Unterverzeichnis. Die Anwendung ist auch lediglich für meinen Privatgebrauch gedacht, ansonsten würde ich wohl aufgrund von Zugriffsrechten eher das tempräre Verzeichnis nutzen.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8720
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 08.12.18 02:38 
Der Speicherort an sich macht nur dann einen Unterschied, wenn an verschiedenen Orten unterschiedliche Speichermedien genutzt werden (bspw. Netzlaufwerk für Nutzer-Verzeichnis). Je nach Konfiguration kann es dann vorkommen, dass das temporäre Verzeichnis langsamer (oder im Falle einer RAM-Disk schneller) als dein Programmverzeichnis ist (in welches Du eh nicht schreiben solltest) ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.

Für diesen Beitrag haben gedankt: rushifell
rushifell Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Sa 08.12.18 12:14 
Das klingt plausibel. Danke