AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi KillDuplicates gibt Fehler mit CoolTrayIcon?
Thema durchsuchen
Ansicht
Themen-Optionen

KillDuplicates gibt Fehler mit CoolTrayIcon?

Ein Thema von lucius · begonnen am 29. Nov 2005 · letzter Beitrag vom 1. Dez 2005
Antwort Antwort
Seite 3 von 4     123 4      
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#21

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 12:29
Marabu, list index out of bounds(2)

wobei ich die Anzahl neu definieren muss denke ich mal? dan ist das Problem geloesst, hoffe ich, oder?
Delphi-Quellcode:
try
    sl.LoadFromFile(label2.caption + '\torrents.db');
    //anzahl lesen
    KillDuplicatesEx(sl, 2);
    anzahl:=strtoint(sl[0]); <---- list index out of bounds(2)
    for i:=0 to anzahl do
      begin
        listitem:=listview.Items.add;
        //caption des items lesen
        listitem.Caption := sl[i*2+1];
        //alle subitems des items mit einmal lesen
        listitem.SubItems.CommaText := sl[i*2+2];
      end;
  finally
MFG, Lucius.
  Mit Zitat antworten Zitat
marabu

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

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 12:46
Lucius, du hast doch gar keine Anzahl in der ersten Zeile von torrents.db stehen - oder? Und deine Indexberechnung in der Schleife kann nicht funktionieren. Wenn der Aufbau der Datei so ist, wie du es weiter oben behauptest, dann musst du es so probieren:

Delphi-Quellcode:
var
  FieldList: TStringList;
begin
  FieldList := TStringList.Create;
  // ...
  try
    sl.LoadFromFile(label2.caption + '\torrents.db');
    KillDuplicatesEx(sl, 2);
    for i := 0 to Pred(sl.Count) do
    begin
      FieldList.CommaText := sl[i];
      with ListView.Items.Add do
      begin
        Caption := FieldList[0];
        FieldList.Delete(0);
        SubItems.Assign(FieldList);
      end;
    end;
  finally
    FieldList.Free;
    // ...
  end;
  // ...
end;
Hoffentlich habe ich mich nicht zu oft verschrieben...

marabu
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#23

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 13:00
So ich werde mich erstmal ein Sueppchen essen und dann deine Function ausprobieren marabu, denn ich brauche erstmal ne kleine Pauze mir kwalmt schon der Kopf.

MFG, Lucius.
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#24

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 13:35
So marabu, habe deine Function ausprobiert aber nog immer Listindex out of Bounds(2).
Delphi-Quellcode:
try
    sl.LoadFromFile(label2.caption + '\torrents.db');
    //anzahl lesen
    KillDuplicatesEx(sl, 2);
    for i := 0 to Pred(sl.Count) do <------ out of bounds(2)
    begin
      FieldList.CommaText := sl[i];
      with ListView.Items.Add do
      begin
        Caption := FieldList[0];
        FieldList.Delete(0);
        SubItems.Assign(FieldList);
      end;
    end;
  finally
    FieldList.Free;
So sieht die torrents.db vor dem laden aus.
Zitat:
2005-11-30,"Muziek - Album","Rene Froger - Pure Christmas (2005)","102.91 MB","7 seeders and 20 leechers","172.12 kB/s",http://www.liquidtorrent.org/details.php?id=8607&hit=1,"http://www.liquidtorrent.org/download.php/8607/Rene Froger - Pure Christmas.torrent" ////Doppelt muesste also raus////

2005-11-30,"Muziek - Album","Rene Froger - Pure Christmas (2005)","102.91 MB","7 seeders and 20 leechers","172.12 kB/s",http://www.liquidtorrent.org/details.php?id=8607&hit=1,"http://www.liquidtorrent.org/download.php/8607/Rene Froger - Pure Christmas.torrent"

2005-11-30,"Apps - PC","Driver Genius Professional Edition 2005, Version:6.0.1882","5.66 MB","22 seeders and no leecher","22.43 kB/s",http://www.liquidtorrent.org/details.php?id=8606&hit=1,"http://www.liquidtorrent.org/download.php/8606/Driver Genius Professional Edition 2005.rar.torrent"

2005-11-30,"Films - DVDr","End of Days","4.51 GB","no seeders and 11 leechers","51.91 kB/s",http://www.liquidtorrent.org/details.php?id=8605&hit=1,"http://www.liquidtorrent.org/download.php/8605/end of days.torrent"
Ich wuesste nicht was ich noch alles probieren muesste?

MFG, Lucius.
  Mit Zitat antworten Zitat
marabu

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

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 13:47
Jetzt wo du satt bist, solltest du mal nachsehen, ob da Leerzeilen zwischen den Datenzeilen in der Textdatei sind.

marabu
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#26

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 13:48
Ja es gibt Leerzeilen in der Datei, siehe Zitat.
  Mit Zitat antworten Zitat
marabu

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

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 13:50
Raus damit. Wofür sollen die gut sein?

marabu
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#28

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 13:52
Das ist die Speicher Function die verursacht die Leerzeilen.
Delphi-Quellcode:
Var Sl:Tstringlist;
    i:integer;
begin
  sl:=TStringList.Create;
  try
    //anzahl schreiben
    sl.Add(inttostr(ListView.Items.count-1));
    for i:=0 to ListView.Items.count-1 do
      begin
        //caption des items schreiben
        sl.Add(ListView.Items[i].Caption);
        //alle subitems des items mit einmal reinschreiben
        sl.Add(ListView.Items[i].SubItems.CommaText)
      end;
    sl.SaveToFile(label2.caption + '\torrents.db');
  finally
    sl.free;
  end;
  Mit Zitat antworten Zitat
marabu

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

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 14:06
Lucius, du darfst die Anzahl nicht mit rausschreiben - es ist dann keine CSV-Datei mehr und du bekommst die Zahl ja später problemlos wieder, wenn du die Datei mit LoadFromFile() einliest. Außerdem müssen alle Spaltenwerte in einer Zeile stehen, damit der Code zum Einlesen funktioniert, den ich dir weiter oben (#22) gegeben habe.

Delphi-Quellcode:
var
  slLines, slFields: TStringList;
  i: integer;
begin
  slFields := TStringList.Create;
  slLines := TStringList.Create;
  try
    with ListView do
      for i := 0 to Pred(Items.Count) do
      begin
        slFieldsl.Assign(Items[i].SubItems);
        slFields.Insert(0, Items[i].Caption);
        slLines.Add(sfFields.CommaText);
        slFields.Clear;
      end;
    slLines.SaveToFile(label2.caption + '\torrents.db');
  finally
    slLines.Free;
    slFields.Free;
  end;
end;
marabu
  Mit Zitat antworten Zitat
lucius

Registriert seit: 6. Okt 2005
Ort: Niederlande
215 Beiträge
 
Delphi 7 Enterprise
 
#30

Re: KillDuplicates gibt Fehler mit CoolTrayIcon?

  Alt 30. Nov 2005, 14:31
Na marabu,

Nachdem ich alles eingebaut habe wie du es sagtest funktioniert es, aber er laedt die Daten nicht mehr so schnell dan die andere Function in der Listview, eigentlich Schade.
Das war ne schwere Geburt aber es klappt.
Herzlichen Dank an alle die geholfen haben insbesondere marabu.

MFG, Lucius.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 04:41 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