AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bestimmten Eintrag auus StringList löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Bestimmten Eintrag auus StringList löschen

Ein Thema von ByStones2 · begonnen am 12. Jan 2007 · letzter Beitrag vom 12. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#1

Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:13
Hi,
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var
  lLine: Integer;
Begin
  lLine := 0;
  While ( lLine < onlist.Count ) Do
  If onlist.strings[lLine] = Edit2.Text Then
    Begin
      onlist.delete(lLine);
      End;
end;
Auch wenn die bedingung erfüllt ist wird der eintrag nicht gelöscht..
ich weiß leider nich warum, ich hoffe ihr könnt mir helfen???
Manchmal gibt es einen Fehler dass das Maximum überschritten werde ...

Gruß ByStones
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:23
Wo zählst denn du deinen Zähler hoch?

Das ganze geht auch irgendwie so:
onList.delete(onlist.indexof(edit2.text));
Edit: Schreibfehler..hab mal aus dem onLust ein onList gemacht.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#3

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:23
Eine etwas andere Herangehensweise.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  for i := Memo1.Lines.Count -1 downto 0 do
  begin
    if (Memo1.Lines[i] = Edit1.Text) then
      Memo1.Lines.Delete(i);
  end;
end;
Es werden alle Einträge gelöscht und man läuft nicht Gefahr über die Grenzen hinauszulaufen.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:25
Zitat von sirius:
Wo zählst denn du deinen Zähler hoch?

Das ganze geht auch irgendwie so:
onList.delete(onlist.indexof(edit2.text));
Edit: Schreibfehler..hab mal aus dem onLust ein onList gemacht.
naja, mein name wir beim start des programms an die onlist angehängt und soll am ende wieder gelöscht werden...
bei deinem code passiert dass was bei mir auch passiert, der name wird bei jedem start eins mehr...
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:43
Ich denke, das Beil liegt woanders begraben. Wird die Procedure überhaupt aufgerufen? Leg mal nen Breakpoint [F5] innerhalb dieser Prozedur!
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:47
Zitat von sirius:
Ich denke, das Beil liegt woanders begraben. Wird die Procedure überhaupt aufgerufen? Leg mal nen Breakpoint [F5] innerhalb dieser Prozedur!
ja die prozedur wird aufgerufen ...
ich hab keinen plan wo der fehler liegt, soll ich mal den kompletten code posten ???
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:50
Zitat von ByStones2:
ich hab keinen plan wo der fehler liegt, soll ich mal den kompletten code posten ???
Na so ein bisschen:
-Deklaration von onlist
-Wo wird sie created, wo aufgelöst
-Wo beschrieben und
-->alles was mit onlist so zu tun hat
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
ByStones2

Registriert seit: 6. Okt 2005
Ort: Birenbach
133 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:52
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Size := 256;
  SetLength(Benutzername, Size);
  GetUserName(PChar(Benutzername), Size);
  SetLength(Benutzername, Size);
  if(benutzername='KatevasK') or (benutzername='HamannL') then
  close;

  Edit2.Text := BenutzerName;
  list := TStringList.Create;
  ini := tinifile.create(extractfilepath(paramstr(0))+'pfade.ini');
  pfad := ini.ReadString('pfade', 'serverpfad', '');
  Memo1.ReadOnly := true;

  onlist:=TStringList.Create;
  pfad2:=ini.ReadString('pfade','on','');
  onlist.LoadFromFile(pfad2);
  onlist.Add(benutzername);
  onlist.SaveToFile(pfad2);
  ii:=-1;
  i:=onlist.Count;
  if i=ii then
  begin
  ii:=-1;
  end;
  for i := 0 to OnList.Count -1 do ListBox1.Items.Add(OnList.Strings[i]);

end;
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
  y: Integer;
begin
for y := Memo1.Lines.Count -1 downto 0 do
  begin
    if (Memo1.Lines[y] = Edit1.Text) then
      Memo1.Lines.Delete(y);
end;
end;
das is es
Wer nämlich mit "h" schreibt ist dämlich.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:55
Hallo,

dein Code löscht die durch Edit2 bestimmten Zeilen nur dann, wenn sie am Anfang von onList stehen, weil du deinen index nicht anpasst.

Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
Var
  lLine: Integer;
Begin
  lLine := 0;
  // onlist.BeginUpdate;
  While ( lLine < onlist.Count ) Do
    If SameText(onlist[lLine], Edit2.Text)
      Then onlist.delete(lLine)
      Else Inc(lLine);
  // onlist.EndUpdate;
end;
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: Bestimmten Eintrag auus StringList löschen

  Alt 12. Jan 2007, 16:56
Ja, und wo löscht du den Namen wieder aus der Liste am Ende? Du sagtest, er solle am Ende wieder rausgelöscht werden - davon sehe ich nichts. OnList und Memo1 sind unterschiedliche Dinge und zum anderen sehe ich nicht, wo du die Liste ein zweites Mal speicherst...

marabu: AnsiSameText(): Komma zwischen den beiden Argumenten vergessen umzustellen...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz