AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Problem beim Vergleich von 1 Array mit sich selbst
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Vergleich von 1 Array mit sich selbst

Ein Thema von Guenni · begonnen am 23. Nov 2003 · letzter Beitrag vom 28. Nov 2003
 
Guenni

Registriert seit: 11. Sep 2003
4 Beiträge
 
#1

Problem beim Vergleich von 1 Array mit sich selbst

  Alt 23. Nov 2003, 18:11
Hallo,

ich habe ein Problem mit einem Programm (was auch sonst ? *g*).
Also das Programm soll eine Liste auslesen und auswerten in der Namen stehen und dann ausgeben wie oft ein Name vorkommt.
Bei der Liste handelt es sich um die "WhoReadMyStatusMessage"-Liste von Miranda (falls die jemand kennt), daher müssen die Namen vorher noch aus der Zeile ausgeschnitten werden.
Die Zeile sieht ungefähr so aus
Code:
[20/11/2003 - 19:49] [12345678] Manfred Mustermann read your Away message
Ok, soweit so gut. Der Name wird aus der Zeile ausgeschnitten und in ein separates Memo-Fenster ausgegeben. Nun sollen alle Namen in ein Array eingetragen werden. Das Klappt auch soweit.
Jetzt ist das Problem, dass die Namen ja nich doppelt in dem Array drinstehen sollen, deswegen geht eine 2. Schleifen den Array durch und vergleicht alle bisher eingetragenen Namen mit dem, der nun eingetragen werden soll. Dabei kommt es aber zu Konfusen einträgen die absolut nicht stimmen und ich kann mir nicht erklären wieso.

Vielleicht findet jemand den Fehler, danke ;)

Deklaration
Delphi-Quellcode:
type TNames = record
     Name : String[50];
     Hit : integer;
end;

var
  ....
  Auswertung : Array[0..300] of TNames;
Quelltext
Delphi-Quellcode:
var k,i,l,m,ext,nPos : integer;
     S,Part,Substr: String;

begin
 Memo2.Clear;

// ####################
// ### Definitionen ###
// ####################

 ext := Memo1.Lines.Count-1;
 Label3.Caption := IntToStr(ext);

// ###################
// ## Array säubern ##
// ###################

 FOR i := 0 TO ext DO BEGIN
  WITH Auswertung[i] DO BEGIN
   Name := '';
   Hit := 0;
  END;
 END;

// ##################
// # Cut First Part #
// ##################

   FOR i := 0 TO ext DO BEGIN
      S := Memo1.Lines[i];

     FOR k := 1 TO 2 DO BEGIN
      Substr := ']';
      nPos:=Pos(Substr, S);
      Part := Copy(Part,nPos+2,Length(S));
      Delete(S,1,nPos+1);
     END;

// ###################
// # Cut Second Part #
// ###################

    Substr := 'read';
    nPos:=Pos(Substr, S);
    Part := Copy(S,1,nPos-2);
// Memo2.Lines.Add(Part);

// ###################
// # Array eintragen # <<< HIER IST DAS PROBLEM, IN DEM UNTEREN ABSCHNITT.
// ###################


    FOR l := 0 TO i-1 DO BEGIN
    IF Auswertung[l].Name = Part THEN
      Auswertung[l].Hit := Auswertung[l].Hit+1
     ELSE
      Auswertung[i].Name := Part;
      Auswertung[i].Hit := Auswertung[i].Hit+1
    END;


 END;

END;
//EDIT Die Liste wird in Memo1 geladen, deswegen auch die Zuweisung S := memo1.lines[i]
  Mit Zitat antworten Zitat
 


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