AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Inhaltsvergleich einer Listbox

Ein Thema von Ajin · begonnen am 30. Mär 2007 · letzter Beitrag vom 3. Apr 2007
Antwort Antwort
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#1

Inhaltsvergleich einer Listbox

  Alt 30. Mär 2007, 14:47
Huhu DP!

Ich habe eine Listbox auf meiner Form. Ich lese einen String aus und möchte wissen, ob dieser String bereits in meiner Listbox vorkommt. Eigentlich geht das doch so:

Delphi-Quellcode:
 //Prüfen ob er in der Liste ist..
if Fliste.meineliste.items.indexof(meinstring) = -1 then
    begin
     //String ist nicht in der Listbox
    end
    else begin
          //String wurde in Listbox gefunden
         end;
Das klappt komischerweise aber nicht. Ist da was falsch?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Inhaltsvergleich einer Listbox

  Alt 30. Mär 2007, 15:08
Die Strings müssen ja vollständig übereinstimmen (Groß-Kleinschreibung, Leerzeichen) versuchs mal mit Trim(), UpperCase() o,ä.
Markus Kinzler
  Mit Zitat antworten Zitat
Muehle

Registriert seit: 24. Nov 2006
Ort: 92331 Parsberg
24 Beiträge
 
Delphi 2005 Architect
 
#3

Re: Inhaltsvergleich einer Listbox

  Alt 30. Mär 2007, 15:12
Müsste eigentlich gehen , habs gerade ausprobiert. Bekomme -1 zurueck, wenn Delphi nichts findet.

self.LstStartedProcesses.items.indexof('Suchtext') ; // -das funktioniert bei mir

Hast du wirklich eine Listbox ??
Vielleicht Groß/Kleinschreibung ??
Zudem hast du vor Items 2 Objekte stehen ??
G.M.
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Inhaltsvergleich einer Listbox

  Alt 2. Apr 2007, 15:12
Hi,

Ich hab das ganze nochmal geprüft, das Ergebnis ist immer negativ. Hier der simple Code:

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var s: String;
begin
 //lade den ersten namen aus der Liste
         if fileexists('C:\liste1.txt') then
          begin
           liste1.Items.LoadFromFile('C:\liste1.txt');
           s:=liste1.items[0]; //den ersten Eintrag auswählen
         end;
 //vergleichen mit dem inhalt der anderen liste
  if fileexists('C:\napliste.txt') then napliste.Items.LoadFromFile('C:\napliste.txt');
  if napliste.items.indexof(s) = -1 then showmessage(s+' ist nicht in Liste 2')
  else showmessage(s+' ist in Liste 2 Juchuu');
End;
Ihr könnt es gern mal testen aber angeblich ist der string immer in der liste 2
  Mit Zitat antworten Zitat
marabu

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

Re: Inhaltsvergleich einer Listbox

  Alt 2. Apr 2007, 16:40
Hallo Jaimy,

wenn du deinen Code etwas erweiterst, dann kommst du der Fehlerursache vielleicht selbst auf die Spur:

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
const
  FN_LISTE1 = 'C:\Liste1.txt';
  FN_NAPLISTE = 'C:\napliste.txt';
var
  s: string;
begin
  // lade den ersten namen aus der Liste
  if FileExists(FN_LISTE1) then
  begin
    Liste1.Items.LoadFromFile(FN_LISTE1);
    if Liste1.Count > 0 then
    begin
      // den ersten Eintrag auswählen
      s := Liste1.Items[0];
      // vergleichen mit dem inhalt der anderen liste
      if FileExists(FN_NAPLISTE) then
      begin
        napListe.Items.LoadFromFile(FN_NAPLISTE);
        if napListe.Items.IndexOf(s) < 0
          then ShowMessage(Format('"%s" nicht in NapListe', [s]))
          else ShowMessage(Format('"s" in NapListe gefunden', [s]));
      end else
        ShowMessage(Format('Datei "%s" nicht gefunden', [FN_NAPLISTE]));
    end else
      ShowMessage('Liste1 ist leer');
  end else
    ShowMessage(Format('Datei "%s" nicht gefunden', [FN_LISTE1]));
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Inhaltsvergleich einer Listbox

  Alt 3. Apr 2007, 08:28
Der marabu liegt wieder völlig richtig, da war ich wohl zu ungenau. Ich werde zukünftig darauf achten.

Grüsse Jaimy

  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:17 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