Entwickler-Ecke
Dateizugriff - Parameterübergabe
chris_davidi - Mi 03.09.03 10:07
Titel: Parameterübergabe
Hi..
Ich habe folgendes Problem.
Ich will das beim Start meiner Anwendung eine MessageBox aufgerufen wird (oder eine Form, welche selber kreiert wurde, ganz egal). Dies ist ja ganz einfach. Dort soll aber eine bestimmte Parameterreihenfolge eingegeben werden. Die Eingabe wäre zum Beispiel jjKWww. Dies soll dann übergeben werden in folgende Prozedur.
Delphi-Quelltext
1:
| if not FileExists('jjKWww') then |
Hoffe ihr versteht das Problem. Kann mir jemand helfen? Wäre sehr nett.
Danke im Vorraus.
Chris
Moderiert von
Tino: Delphi-Tags hinzugefügt.
Delete - Mi 03.09.03 11:04
ehrlich gesagt, verstehe ich das Problem nicht...
Kannst du es mal genauer beschreiben??
chris_davidi - Mi 03.09.03 11:12
Ok...
Ich habe mir nun eben eine Form gemacht. Es hat ein Edit Feld und einen Button.
In das Edit Feld gebe ich zum Beispiel
jjKWww (<- EINGABE) ein. Nun will ich, dass jjKWww als Parameter übergeben wird in folgende Prozedur. Also in den Code wo ich gepostet habe.
Delphi-Quelltext
1:
| if not FileExists('jjKWww <- EINGABE') then |
Sprich, immer wenn ich das Programm aufrufe und was eingebe, soll der Wert übergeben werden.
Moderiert von
Tino: Delphi-Tags hinzugefügt.
Tino - Mi 03.09.03 11:24
Hallo!
Delphi-Quelltext
1:
| If not FileExists (Edit1.Text) Then |
Gruß
Tino
chris_davidi - Mi 03.09.03 11:51
Okay Danke, klappt.
Nun wirft sich aber ein anderes Problem auf.
Quelltext
1: 2: 3: 4: 5: 6:
| procedure TForm1.FormCreate(Sender: TObject); begin Caption:='NDC Health - ' + GetCurrentDir; ZipMaster1.ZipFileName:='C:\Eigene Dateien\NDC- Transfer\DATEINAME.zip'; ZipMaster1.Load_Zip_Dll; end; |
Ich will den Text, welcher in das Edit eingegeben wurde verwenden, um die Datei abzuspeichern. Also Text wird eingegeben, Datei wird gezippt und soll unter dem Name, welcher in Edit1 steht abgespeichert werden.
Also die Zeile ist wichtig:
Quelltext
1:
| ZipMaster1.ZipFileName:='C:\Eigene Dateien\NDC- Transfer\DATEINAME.zip'; |
Das ich darin den Wert, bzw. Text einfügen kann, welcher Edit1 hat, so dass dann die Datei diesen Namen erhält.
Weiß jemand wie das geht, weil wenn ich statts DATEINAME einfach Edit1.Text eingeben heißt die Datei am Ende "Edit1.Text.zip".
Delete - Mi 03.09.03 11:57
versuchs mal so:
Delphi-Quelltext
1:
| ZipMaster1.ZipFileName:='C:\Eigene Dateien\NDC- Transfer\' + edit1.text + '.zip'; |
chris_davidi - Mi 03.09.03 12:00
Habe ich probiert, sieht von der Logik besser aus. Aber die Datei hat nun gar keinen Dateinamen. Habe mal die + weggelassen oder versetzt, bringt aber keinen Unterschied. An was kann das liegen?
chris_davidi - Mi 03.09.03 13:02
Wenn ich in den Objektmanager bei Edit1 unter Text etwas eingebe, hat es den Dateinamen. Wenn ich es jedoch leer lasse und es auslesen lass mit dem von DaBass hat die Datei keinen Dateinamen, nur eine Endung
Delphi-Quelltext
1:
| ZipMaster1.ZipFileName:='C:\Eigene Dateien\NDC- Transfer\' + edit1.text + '.zip'; |
Weiß jemand Rat?
Delete - Mi 03.09.03 13:18
dann musst du zuerst das feld noch überprüfen:
Delphi-Quelltext
1:
| if not edit1.text = '' then ZipMaster1.ZipFileName:='C:\Eigene Dateien\NDC- Transfer\' + edit1.text + '.zip'; |
so sollte auch dieses Probleem gelöst sein!
chris_davidi - Mi 03.09.03 13:22
Geht nicht, "Operator ist auf diesen Operandentyp nicht anwendbar".
Delete - Mi 03.09.03 13:25
dann versuche es so:
Delphi-Quelltext
1:
| if edit1.text <> '' then ZipMaster1.ZipFileName:='C:\Eigene Dateien\NDC- Transfer\' + edit1.text + '.zip'; |
chris_davidi - Mi 03.09.03 13:50
Es läuft zwar, aber es macht keinen Unterschied. Bringt ebenfalls kein Ergebnis.
Hier mal mein Code, bei dem ich den Effekt haben möchte. Nur eben will ich, dass der Dateinamen der ZIP- Datei den Wert von Edit.text hat, welcher ich in der Edit eingebe.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ZipMstr, Buttons, StdCtrls, ExtCtrls;
type TForm1 = class(TForm) Panel1: TPanel; button_: TSpeedButton; ZipMaster1: TZipMaster; title: TLabel; help_button: TSpeedButton; exit_button: TSpeedButton; kw_day: TEdit; parameter: TLabel; kw_year: TEdit; kw: TLabel; Label1: TLabel; edit1: TEdit; procedure button_Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); procedure exit_buttonClick(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); begin Caption:='NDC Health - ' + GetCurrentDir; ZipMaster1.ZipFileName:='C:\Eigene Dateien\NDC- Transfer\' + edit1.text + '.zip'; ZipMaster1.Load_Zip_Dll; end;
procedure TForm1.button_Click(Sender: TObject); begin if not FileExists('C:\Eigene Dateien\NDC- Transfer\intra.txt') then begin ShowMessage('Fehler - Datei intra.txt nicht gefunden! Übertragung vom Host auf PC muss fehlerhaft gewesen sein!'); Exit; end; ZipMaster1.FSpecArgs.Add('C:\Eigene Dateien\NDC- Transfer\intra.txt'); ZipMaster1.Add; ShowMessage('Wenn der Wert hinter dem =- Zeichen 1 ist, dann ist alles gut gelaufen. = ' + IntToStr(ZipMaster1.SuccessCnt)); end;
procedure TForm1.FormDestroy(Sender: TObject); begin ZipMaster1.Unload_Zip_Dll; end;
procedure TForm1.exit_buttonClick(Sender: TObject); begin Form1.Close; end;
end. |
[/code]
Delete - Mi 03.09.03 13:59
ich sehe wo der Fehler steckt.
Du fragst die edit1.Text schon beim FormCreate ab. Jedoch wird dann die Form erst erstellt.... und du kannst noch gar nichts rein schreiben. und wenn schon was darin stehen würde, dann würde immer das gleiche angezeigt, da die Form nur einmal erstellt wird!
Nimm die Zeile, in der du dem Ziparchiv den Namen erteilst doch auch in die ButtonClick Funktion.... :)
Dann sollte alles Funktionieren.
verstanden??
chris_davidi - Mi 03.09.03 14:02
Danke dir. :) Hat klasse geklappt, danke auch für die Erklärung. Denke ich wäre selbst in 50 Jahren nicht drauf gekommen. ;) Läuft nun klasse, danke für deine/eure Hilfe. :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!