![]() |
löschen in txt
Hi
hab ma ne frage Die Combobox holt sich bei mir die namen liste.txt und kann man jetzt beim auswählen in der ComboBox den eintrag auch wieder aus der txt löschen
Delphi-Quellcode:
hoffe ich habe es plausiebel erklärt
procedure TForm7.Button2Click(Sender: TObject);
var i :integer; leherl: Textfile; begin AssignFile(leherl,'C:\Dokumente und Einstellungen\Lehrer Liste\'+'liste.txt'); ReWrite(leherl); for i:= 0 to ComboBox3.Items.Count - 1 do begin WriteLn(leherl,ComboBox3.Items[i]); end; CloseFile(leherl); end; Danke |
Re: löschen in txt
-Warum verwendest du nicht die Methode .SaveToFile() der StringList-Klasse?
-Du verwendest schon wieder feste Pfade. |
Re: löschen in txt
Hai, :hi:
was willst du uns mit diese werbesendung sagen ? :gruebel: ich hab nix kapiert! |
Re: löschen in txt
Zitat:
Delphi-Quellcode:
ComboBox3.Items.SaveToFile('C:\Dokumente und Einstellungen\Lehrer Liste\'+'liste.txt');
|
Re: löschen in txt
Benutze immernoch die festen pfade da ich es immernoch nicht hin bekommen habe das ich die datei aus dem letzten ordner laden kann. es wird immer nur die datei geladen wenn sie im exe ordner meines Programm liegt.
das mit Savetofile() ist viel besser und kürzer danke. Was ich mit dem anderen sagen wollte ich speicher doch mit meiner procedue den text(namen) vom edit3 in die combobox3 liste und diese liste wird in die liste.txt geschrieben (gespeichert) kann ich mir jetzt den namen der in der combobox3. liste (items) liegt selektieren und per rechter maustaste aus der textdatei (liste.txt) auslesen und wieder löschen sodas er nicht mehr in der liste der combobox3 auftaucht und in der listse.txt gelöscht ist.
Delphi-Quellcode:
procedure TForm7.Button2Click(Sender: TObject);
var Sl:TStringlist; i,x,y:integer; leherl: Textfile; d :String; begin if Edit3.Text <> '' then begin Combobox3.Items.Add(Edit3.Text);// Text in die ComboBox3 List übergeben Sl:=TStringlist.Create; begin ComboBox3.Items.SaveToFile('C:\Dokumenteundeinstellungen\Desktop\Elinta\Lehrer Liste\'+'liste.txt'); // die exe liegt im elinta ordner end; Form8.ListBox1.Clear; // liste säubern begin AssignFile(leherl,'C:\Dokumente und Einstellungen\Elinta\Lehrer Liste\'+'liste.txt'); // wie funktioniert das eigenlich mit dem loadfromfile() Reset(leherl); while EOF(leherl) = False do begin Readln(leherl,d); Form8.ListBox1.Items.Add(d); end; Closefile(leherl); end; end else Application.MessageBox('Bitte Name des zu Vertrendenden Lehrer eingeben','Speicher Information',48); end; Danke |
Re: löschen in txt
Hallo Sascha,
die Lehrerliste würde ich in einer globalen Variable (LehrerListe: TStringList) mitführen. Diese Liste sollte sortiert sein (Sorted = True, Duplicates = dupIgnore). Dann kannst du diese Liste jederzeit in eine ListBox übernehmen oder nach Veränderungen auf externem Speicher sichern.
Delphi-Quellcode:
Freundliche Grüße
var
LehrerListe: TStringList; fnLehrerListe: TFileName; sLehrer: String; iLehrer: Integer; begin LehrerListe := TStringList.Create; LehrerListe.Sorted := True; LehrerListe.Duplicates := dupIgnore; fnLehrerListe := ExtractFilePath(ParamStr(0)) + 'LehrerListe.txt'; LehrerListe.LoadFromFile(fnLehrerListe); // laden LehrerListe.SaveToFile(fnLehrerListe); // speichern ListBox.Items.Assign(LehrerListe); // übernehmen LehrerListe.Add(sLehrer); // Eintrag hinzufügen ohne Doppelung if LehrerListe.Find(sLehrer, iLehrer) then LehrerListe.Delete(iLehrer); // Eintrag entfernen end; |
Re: löschen in txt
Hallo erstmal :lol:
Danke für die Anwort habe mit deiner hilfe alle festen Pfade ändern können und mit dem Laden und speicher Funktioniert das auch so besser und ist vom text her viel kürzer Leider habe ich das immer noch nich hinbekommen dass wenn ich mit der Rechten Maustaste den Namen aus der Combobox liste bzw. aus der datei in der die Namen gespeicher sind löschen Kann. So speicher ich jetzt alles in der combobox und Listbox
Delphi-Quellcode:
geht das löschen vielleicht nicht irgenwie so :gruebel:
Privat
Var plan :TFileName; leherl: TFileName; Vertrpl :TStringlist; {StrinGrid Speichern} procedure TForm7.Button2Click(Sender: TObject); var x,y:integer; begin if Edit3.Text <> '' then begin Vertrpl:= TStringlist.Create; Combobox3.Items.Add(Edit3.Text);// Text in die ComboBox3 Liste übergeben Vertrpl.Add(IntToStr(StringGrid1.Colcount)); Vertrpl.Add(IntToStr(StringGrid1.Rowcount)); for x:= 0 to StringGrid1.ColCount-1 do for y:= 0 to StringGrid1.RowCount-1 do Vertrpl.Add(StringGrid1.Cells[x,y]); for x:= 0 to StringGrid1.ColCount-1 do Vertrpl.Add(IntToStr(StringGrid1.ColWidths[x])); for x:= 0 to StringGrid1.RowCount-1 do Vertrpl.Add(IntToStr(StringGrid1.RowHeights[x])); Vertrpl.Add(IntToStr(StringGrid1.Clientwidth)); Vertrpl.Add(IntToStr(StringGrid1.Clientheight)); Vertrpl.Add(IntToStr(Ord(StringGrid1.ScrollBars))); plan:= ExtractFilePath(ParamStr(0))+'Vertretungspläne\'+ Edit3.Text +'.txt'; Vertrpl.SaveToFile(plan); Showmessage('Datei wurde in:' + sLineBreak + plan + ' gespeichert'); begin leherl:= ExtractFilePath(ParamStr(0)) +'\Lehrer Liste\'+'liste.txt'; ComboBox3.Items.SaveToFile(leherl); end; Form8.ListBox1.Clear; begin leherl:= ExtractFilePath(ParamStr(0)) +'\Lehrer Liste\'+'liste.txt'; Form8.ListBox1.Items.LoadFromFile(leherl); end; end else Application.MessageBox('Bitte Name des zu Vertrendenden Lehrer eingeben','Speicher Information',48); end;
Delphi-Quellcode:
danke
if Shift = [ ssRight] then
begin Application.MessageBox('Wollen sie Wirklich den eintrag löschen',Frage,36) = 6 then begin Combobox3.selection:= Delete; // nur ein vorschlag?????? //+ den eintrag in der Textdatei löschen . . . . end; |
Re: löschen in txt
Delphi-Quellcode:
Combobox3.Items.Delete( ComboBox3.ItemIndex);
|
Re: löschen in txt
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Sascha,
für das Löschen eines Eintrages aus einer ComboBox mittels rechter Maustaste schlage ich dir folgendes vor: Ordne der ComboBox ein PopupMenu zu und erzeuge darin ein MenuItem "Löschen". In meinem Beispiel-Code verwende ich Actions, die ich den MenuItems zuweise. Es ist nicht viel Code, also solltest du in der Lage sein ihn nachzuvollziehen. Freundliche Grüße |
Re: löschen in txt
Das heist wenn ich diesen eintrag gelöscht habe überschreibe ich damit einfach diese txt in der die namen gespeichert sind und habe somit die liste aktuallisiert :P :thumb:
Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz