Dateiübergabe
-
ich hatte mit der suche nichts gefunden, vllt hab ich aber auch was übersehen oder falsch gesucht^^
Ich möchte eine txt-Datei als Parameter übergeben, nur leserechte sind benötigt.
also "c:\test.exe test.txt", oder auch "c:\test.exe -o test.txt" (o.Ä.)Ich hatte zwar etwas gefunden mit argv in der main-funktion aber habe das Beispiel nicht genau verstanden.
Dann wollte ich noch fragen wie man es realisiert, dass die datei per Drag&Drop übergeben wird.
-
Mit argv haste es doch schon.
Das ist ein Char-Zeiger-Array welches den kompletten Kommandozeilenbefehl enthält.
argc gibt dabei an wie lang das Array ist.Also bei "C:\test.exe test.txt" wäre argc = 2, argv[0] = "C:\test.exe" und argv[1] = "test.txt".
Musste dann halt den entsprechenden Parameter auslesen und so verarbeiten wie Du es haben möchtest.
...
Mit Drag&Drop kenn ich mich allerdings nich aus, da kann ich Dir leider nix zu sagen.
-
Hallo
Statt argc solltest du im Builder aber lieber ParamStr benutzen. Zu diesem Stichwort findest du in der BCB-Hilfe, in der Forums-SuFu und in der Forums-FAQ ("Öffnen mit..." Dateiendung festlegen) genug Threads.
Zum Drag&Drop findest du ebenfalls in der FAQ einen Thread (Datei per Drag and Drop aus dem Explorer empfangen ) im Abschnitt Forms.
bis bald
akari
-
akari schrieb:
Statt argc solltest du im Builder aber lieber ParamStr benutzen.
Warum?
Bis darauf, dass man das char-Array noch in einen schönen Stringtypen umwandeln muss, geht doch alles auch sehr schön.
-
danke schonmal für die antworten, das mit argv etc. hab ich immer noch nicht genau verstanden
mein Programm läuft mit GUI, wo muss ich argv etc. jetzt eintragen?
ich hatte es in der TForm1::TForm1
mitint argc; char** argv;deklariert, allerdings sagt mir das Programm das
in argc 18432216 einträge sind...und das ohne Parameter.../EDIT:
mit ParamStr hats sofort gefunzt, aber eine Antwort hätte ich trotzdem gerne noch
-
Hallo
genau deshalb rate ich zu ParamStr... denn argc soll natürlich nicht einfach so irgendwo deklariert werden! Vermutlich hast du auch kein Speicher zugewiesen und deshalb bekommst du irgendwelche ungültigen Zufallswerte.
argc und argv werden dir in der Main-Funktion mit übergeben. Diese findest du in der projekt-hauptdatei (<Projektname>.cpp) wo auch die Application selber erstellt und initialisiert wird.bis bald
akari
-
Alternativ kann man auch <dos.h> inkludieren und hat dafür dann die globalen Variablen '_argv' und '_argc' zur Verfügung.