Autor Beitrag
Jagg
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Mi 24.07.02 09:18 
Hallo,Leute !

Ich habe eine ComboBox und daraus wähle ich den Namen einer Tabelle z.b. Test.dbf !
Ich will die Tabelle jetzt löschen !

Wie mache ich das ?


Jagg !

PS : Er soll genau den die Tabelle löschen,die ich ausgewählt habe
wwerner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.07.02 09:25 
deletefile(combobox1.items[combobox.itemindex]);

_________________
Gruß

Wolfgang

----------
zu hause ist es doch am schönsten
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 24.07.02 09:39 
Direkt nach dem Löschen würde ich natürlich auch noch den Eintrag in der ComboBox löschen.

Außerdem dem sollte man vor dem Löschen noch Prüfen ob ein Eintrag aus der ComboBox ausgewählt ist. Ansonsten bekommst bei dem Code-Beispiel von Werner einen kleinen Fehler.

Gruß
TINO
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Mi 24.07.02 09:39 
er löscht nicht,aber er sagt auch keine fehlermeldung !
wwerner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.07.02 09:46 
wahrscheinlich muß noch der pfad dazu

_________________
Gruß

Wolfgang

----------
zu hause ist es doch am schönsten
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Mi 24.07.02 09:52 
Mein pfad ist : C:\Nguyen\Sonstige\Mailimg Service\Datenbank

Und wo tue ich das jetzt hin ????
Hab noch nie mit deletefile gearbeitet !

Jagg !
wwerner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.07.02 09:55 
Auf diese Frage antworte ich: Lies einfach einmal in der Hilfe unter deletfile

_________________
Gruß

Wolfgang

----------
zu hause ist es doch am schönsten
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Mi 24.07.02 10:12 
Deletefile('C:\Nguyen\Sonstige\Mailing Service\Datenbank'[Combobox1.Itemindex]);

ist das so richtig ??? er löscht aber alles !
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 24.07.02 11:51 
Nein.

Die Methode DeleteFile erwartet als Parameter einen Dateinamen. Wenn Du mal DeleteFile eingibst und F1 drückst bekommt Du Infomationen zu dieser Funktion. Unter anderem auch den Hinweis wie diese Funktion definiert ist und somit welche Parameter erwartet werden:
Delphi-Hilfe hat folgendes geschrieben:
function DeleteFile(const FileName: string): Boolean;

Dadurch siehst Du jetzt das es sich bei der Methode DeleteFile um eine Funktion handelt die als Ergebnis ein Boolean-Wert zurückliefert und einen Paramter erwartet.

Das heißt jetzt das der folgende Aufruf z. B. die Datei z:\test.txt löscht:
ausblenden Quelltext
1:
2:
3:
4:
If DeleteFile ('z:\test.txt') { = True} Then
  { Datei gelöscht }
Else
  { Fehler }
Das "Problem" ist nun das Du statt der Angabe z:\test.txt den Eintrag aus der ComboBox und zusätzlich die Pfadangabe benötigst. Wie Du den markierten oder auch engetragenen Text aus der ComboBox bekommst steht auch in der Online-Hilfe und in dem Beitrag von Werner.

Gruß
wwerner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.07.02 11:59 
Nur noch ein Hinweis: Du solltest keine Pfadangabe hardcodieren. Was ist wenn das Programm auf d: läuft? Auserdem bekommst du die Zeile da oben gar nicht übersetzt. Kannst du inzwischen mit den Debugger umgehen?

_________________
Gruß

Wolfgang

----------
zu hause ist es doch am schönsten
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Do 25.07.02 08:16 
also,wenn ich das jetzt richtig verstehe !
Ich darf also nicht den pfad mit eingeben,weil der programm eventuell auch auf einem anderen pfad laufen kann !
Aber wie mache ich das denn wenn ohne pfad,also ich blick da gar nicht mehr durch !
Mit dem Debugger kann ich jetzt umgehen,also zeile für zeile analysieren !

Jagg !
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Do 25.07.02 08:18 
Ich habe bisjetzt so :

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm3.Button2Click(Sender: TObject);
begin
  if ComboBox1.ItemIndex <> -1 then
  begin
    if DeleteFile ('ComboBox1.Items[ComboBox1.ItemIndex]') then
    begin
    
    end;
  end;
end;


Wie füge ich denn jetzt da ein ????
Was muss ich noch machen ???

Jagg !
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 25.07.02 09:25 
Hallo Jagg,

bei Deinem Code versucht DeleteFile jetzt die Datei mit dem Name "ComboBox1.Items[ComboBox1.ItemIndex] zu löschen. Das ist natürlich falsch.

Hier mal 4 Beispiele die letztendlich alle das gleich machen. Nur halt mit dem Unterschied das mal dierekt eine Datei angegeben wurde und mal durch eine oder zwei Variablen:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
// Löscht die Datei Test.txt auf Laufwerk C im Verzeichni Program
DeleteFile ('c:\Program\test.txt'); 


// Löscht die Datei die durch die Variable Filename angegeben ist
Filename := 'c:\Program\Test.txt';
DeleteFile (Filename);


// Löscht die Datei Filename im Verzeichnis Path
Filename := 'Test.txt';
Path := 'c:\Program\';
DeleteFile (Path + Filename);


// Löscht die Datei Filename im Verzeichnis 'c:\Program'
Filename := 'Test.txt';
DeleteFile ('c:\Program\' + Filename);

Hast Du das soweit verstanden? Wenn nicht dann frag noch mal nach ansonsten bekommst Du das in Deinem Programm nicht hin.

Gruß
TINO
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Do 25.07.02 09:30 
Hey,das versteh ich schon aber eer soll den aushewählten namen aus der combobox löschen !
Wie mache ich das denn ?
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 25.07.02 09:37 
Dann ist es doch relativ einfach. Nimm das 3. Beispiel von oben also den hier:
ausblenden Quelltext
1:
2:
3:
4:
// Löscht die Datei Filename im Verzeichnis Path
Filename := 'Test.txt';
Path := 'c:\Program\';
DeleteFile (Path + Filename);

Jetzt musst Du nur noch die Variable Filename den Wert aus der ComboBox zuweisen. Wie Du den Wert bekommst steht in dem ersten Posting von Werner. Die Varibale Path kannst Du erstmal zum Testen direkt das Verzeichnis das Du in Deinem 3. Posting gepostet hast zuweisen (aber zustätzlich mit einem abschließenden Backslash).

Fertig
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Do 25.07.02 09:46 
ich habe es so gemacht,aber es geht trotzdem nicht !
Was mache ich nur falsch !

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
if ComboBox1.ItemIndex <> -1 then
  begin
    Filename := (ComboBox1.Items[ComboBox1.ItemIndex]);
    Path := 'C:\Nguyen\Sonstige\Mailing Service\Datenbank\';
    DeleteFile (Path + Filename);
  end;
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 25.07.02 09:53 
Das sieht doch schon recht gut aus! Jetzt pack noch die Klammern bei der Zuweisung der Variable Filename weg und schon sollte es funktionieren!

Gruß
TINO


Zuletzt bearbeitet von Tino am Do 25.07.02 09:54, insgesamt 1-mal bearbeitet
wwerner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 185



BeitragVerfasst: Do 25.07.02 09:53 
Hi,

Das mit dem Path war so gemeint, das du zur Laufzeit ermitteln sollst wo dein Programm läuft:

ausblenden Quelltext
1:
path := ExtractFilePath(application.ExeName);					


wenn jetzt deine Datenbanken z.B. in Verzeichnis Datenbanken liegen mußt du noch folgendes machen:

ausblenden Quelltext
1:
path := ExtractFilePath(application.ExeName)+'Datenbanken\'					

_________________
Gruß

Wolfgang

----------
zu hause ist es doch am schönsten
Jagg Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 635



BeitragVerfasst: Do 25.07.02 09:57 
Hey tino,es sollte gehen aber es geht nicht ich habe jetzt die klammern bei der Zuweisung für Filename weggelassen !

Jagg !
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Do 25.07.02 10:02 
Und wo klappt was nicht? Gibt es eine Fehlermeldung wenn ja welche wenn nicht dann setz doch mal einen Breakpoint auf Zeile DeleteFile und schaue Dir dann mal die Werte der Variablen (Filename & eventl. Path) an (einfach mit der Maus auf die Variable zeigen und schon siehste den Wert) und kontrolliere ob diese richtig sind.

Gruß