Autor Beitrag
Througer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Di 31.05.05 16:57 
Hi,

ich habe folgendes Problem.
Ich habe mit Delphi ein ganz simples Programm geschrieben. Und zwar habe ich eine ListBox in der ich E-Mail-Adressen einfügen kann. Diese werden kontrolliert ob es wirklich E-Mails sind und dann in die ListBox editiert.
Dann habe ich noch einen Speicher Button und einen Laden Button.
Zur Zeit habe ich das mit dem Speichern wir folgt gelöst.

ListBox1.items.Savetofile('D:\Daten\E-Mail\email.tel');

Das ist ja auch so weit OK, bloß wenn der Ordner nicht vorhanden ist, dann kann Delphi auch nicht speichern.
Jetzt wollte ich wissen ob es eine Möglichkeit gibt diesen Ordner zu erstellen.
Nach dem Motto

create folder ('D:\Daten\E-Mail') oder so.^^

Doch leider klappt das nicht. Kann mir da einer Helfen??
Bin für jede Hilfe dankbar.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Di 31.05.05 17:02 
ich glaube es gibt den befehl createfolder, kA ich wollts auch grad wissen :wink:
SvenAbeln
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 334
Erhaltene Danke: 3



BeitragVerfasst: Di 31.05.05 17:04 
der Befehl ist :

CreateDir

Aus der Delphi Hilfe:

Zitat:
function CreateDir(const Dir: string): Boolean;

Beschreibung

Mit CreateDir können Sie ein neues Verzeichnis erstellen. Kann das Verzeichnis erstellt werden, gibt CreateDir True zurück, bei einem Fehler wird False zurückgegeben.
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Di 31.05.05 17:05 
genau so war das :D
sunspeed
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 99

Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
BeitragVerfasst: Di 31.05.05 17:09 
Falls es mit Create Dir nicht funktioniert, musst du ForceDirectorys verwenden. Damit gehts mit 100%iger sicherheit!

Gruß sunspeed

_________________
Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
Cybo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 87

Win 95/98/xp/NT Suse Linux
D7 Ent
BeitragVerfasst: Di 31.05.05 17:20 
du solltest nur vorher prüfen, ob das Verzeichnis bzw die datei schon besteht, ansonsten wird das nämlich überschrieben und alles ist gelöscht...

_________________
Ich öffnete, kompilierte und traute meinen Augen nicht.
sunspeed
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 99

Win 95, Win 98,WinME,W2k Win XP
Delphi 4 Pers,Delphi 7 Prof, Delphi 2005 Arch, VS 2003, VS 2005, C#
BeitragVerfasst: Di 31.05.05 17:23 
Gut, dass ist der nachteil bei ForceDirectory.
Überprüfen musste so und so.

_________________
Tiefe Brunnen muss man graben, wenn man klares Wasser will.
Tiefe Wasser sind nicht still!
Througer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Di 31.05.05 18:02 
Danke, ihr habt mir schon mal sehr geholfen.
Allerdings habe ich trotzdem noch ein Problem bei der Sache.
Wenn ich CreateDir benutze, dann klappt das auch so weit. Bloß kann ich immer nur einen Ordner erstellen.
Das heiß ich kann nur D:\Delphi z.B. erstellen.
Sobald dieser dann vorhanden ist kann ich erst einen Unterordner erstellen.
Also D:\Delphi\Liste
Möchte ich aber von anfang an D:\Delphi\Liste erstellen dann wir das einfach ohne Meldung nicht ausgeführt.

Nun zu ForceDirectorys.
Wenn ich diesen Befehl benutze wird mir gesagt es sei eine undefinierte Bezeichnung.
ICh habe auch schon nachgelesen und unter diesem Begriff ForceDirectories gefunden. Also mit ies, aber das hat auch nicht geholfen.

Muss ich noch eine Variable deklarieren oder geht das so.

Noch einmal DANKE für die schnelle Hilfe.^^
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 31.05.05 19:29 
Normalerweise steht in der Hilfe, in welcher Unit der Befehl ist. In meinem Delphi 5 steht groß "FileCtrl" drüber.
Througer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Di 31.05.05 20:12 
Also, noch mal danke für die Hilfe.
Habe das ja schon in der Hilfe bzw. bei dem Easy Helper nachgelesen, bloß muss ich leider sagen das ich das nicht verstehe.
Dort steht nämlich,

ForceDirectories ist in der Unit FileCtrl deklariert. Diese muss also in die Uses-Klausel aufgenommen werden.

Was muss ich denn jetzt machen??
Tut mir leid das das so eine dumme Frage ist aber ich kann damit nicht wirklich was anfangen.

PS: Da steht noch dies als Beispiel.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);
var
  Dir: string;
begin
  Dir := 'C:\Test1\Test2\Test3';
  if ForceDirectories(Dir) then
    Label1.Caption := Dir + ' wurde erfolgreich erstellt.'
end;



Aber so funktioniert das noch net.

Noch einmal danke Througer:

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
Seppel
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Di 31.05.05 20:27 
Hi!

Soweit ich das sehe musst du doch nur noch folgendes machen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.Button1Click(Sender: TObject);  
var  
  Dir: string;  
begin  
  Dir := 'D:\Daten\E-Mail';  
  if ForceDirectories(Dir) then  
    Label1.Caption := Dir + ' wurde erfolgreich erstellt.'  
end;


Also bei "Dir" das eingeben, was du als Pfad möchtest und natürlich auch Form1, Button und Label1 durch die namen, die du den komponenten gegeben hast ersetzen.

Gruß Seppel
Blackheart
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 164

ME
D3Prof.-D6Standard
BeitragVerfasst: Di 31.05.05 20:41 
(Diese muss also in die Uses-Klausel aufgenommen werden. )!!!
Das heißt oben in deinen Program... (FileCtrl) einfügen damit bindest Du die Unit ein.


Vorher

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

Nachher

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,FileCtrl;
Througer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 21



BeitragVerfasst: Di 31.05.05 21:00 
@Seppel

Ne, wenn ich das so mache wie du sagst, dann kommt der von mir beschriebene Fehler, aber trotzdem danke für den Versuch.^^

@Blackheart

Jo, hattest recht, jetzt geht alles. Ich danke dir. Habe es endlich geschafft.
Einganz großes Dankeschön an euch alle. Ihr habt mir sehr geholfen.

MfG Througer :D