Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stringgrid - GERADE/UNGERADE ZEILEN (https://www.delphipraxis.net/111716-stringgrid-gerade-ungerade-zeilen.html)

aaron 8. Apr 2008 09:47


Stringgrid - GERADE/UNGERADE ZEILEN
 
Ich habe ein Stringgrid in dem in einer Spalte Domainnamen stehen die ich überprüfen will.
Wenn ich das so mache dann dauert das ewig:

Delphi-Quellcode:
procedure TForm.Button5Click(Sender: TObject);
var
Inhalt_gerade,Inhalt_ungerade:String;

begin
  fCancel := False;
  while (lCount < advstringgrid1.RowCount) and (not fCancel) do
   begin
     Application.ProcessMessages();
           -> Inhalt_gerade:= advstringgrid1.Cells[0, lCount]; // ALLE GERADEN ZEILEN
           -> Inhalt_ungerade.text:= advstringgrid1.Cells[0, lCount]; // ALLE UNGERADE ZEILEN
      inc(lCount);
      advStringGrid1.row:=lCount;
      Application.ProcessMessages();
      Memo1.text := IdHttp1.get('http://www.whois.net/whois_new.cgi?d='+Inhalt_gerade+'&tld=com');
      Memo2.text := IdHttp1.get('http://www.whois.net/whois_new.cgi?d='+Inhalt_ungerade+'&tld=com');
      ...
    end;
end;
Wie kann ich jede gerade Zeile an Memo1 übergeben und jede ungerade Zeile des Stringgrids an Memo2?
Will einfach nur das die Suche schneller geht.

Gruss
Aaron

Der.Kaktus 8. Apr 2008 09:50

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
soo...
Delphi-Quellcode:
If advstringgrid1.RowCount mod 2 = 0 then gerade else ungerade

Klaus01 8. Apr 2008 09:52

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
.. sollte nicht eher lCount auf gerade geprüft werden.
Das ginge auch mit odd.

Grüße
Klaus

DeddyH 8. Apr 2008 09:55

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Ich verstehe nicht, wieso die Memos in jedem Durchlauf abwechselnd überschrieben werden sollen. Wenn es nur um gerade oder ungerade geht, würde ich es auch wie Klaus machen.

TeronG 8. Apr 2008 09:58

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Ungerade Zahlen haben Binär an erster Stelle (ganz rechts) eine 1. :zwinker: :mrgreen:

DeddyH 8. Apr 2008 10:00

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
AFAIK wird diese 1 von odd (oder auch even) abgefragt :zwinker:

TeronG 8. Apr 2008 10:04

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Zitat:

Zitat von DeddyH
AFAIK wird diese 1 von odd (oder auch even) abgefragt :zwinker:

JO gut möglich ^^
Da aber x MOD 2 gepostet wurde wollte ich wenigstens auf (x and 1 <> 0) anspielen. (und hiermit Posten :mrgreen: )

Btw:
Zitat:

Zitat von OH
In Delphi prüft Odd, ob der mit X angegebene Wert eine ungerade Zahl ist. Bei einer ungeraden Zahl wird true zurückgegeben, bei einer geraden false.


aaron 8. Apr 2008 10:30

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Hallo,
ich verarbeite den Inhalt der Memos weiter.
Meine Idee war halt das es damit schneller geht, woran ich momentan etwas zweifel.
Gruß
Aaron

Hansa 8. Apr 2008 11:26

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Zitat:

Zitat von aaron
Meine Idee war halt das es damit schneller geht, woran ich momentan etwas zweifel.

Was ist denn weshalb "langsamer" ? Da bleibt wohl nur noch Assembler übrig. :gruebel: Ne, vergiss das. :mrgreen: Ich vermute, dass du das Memo während der Adds anzeigen tust. Es wird vielfach enorm unterschätzt, wie lange Windows braucht, den Bildschirm aktuell zu halten. Nimm mal eine Form, ein Memo und einen Button und teste das hier :

Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var i : Integer;
begin
//  memo1.Show;   //   40 Sek.
  for i := 1 to 100000 do
    Memo1.Lines.Add(IntToStr(i));
  memo1.Show;     // 7 Sek
end;
Das Memo ist dabei in der DFM auf visible = false voreingestellt. Bei mir ist der Unterschied bereits mit ca. Faktor 6 zu veranschlagen. Das ist nicht nur beim Memo zu beobachten.

aaron 8. Apr 2008 11:42

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Hallo Hansa,

es geht ja hierum:
Delphi-Quellcode:
Memo1.text := IdHttp1.get('http://www.whois.net/whois_new.cgi?d='+Inhalt_gerade+'&tld=com');
Ich kann ja auch anstatt dem Memo eine Stringvariable verwenden.
Es geht mir insgesamt darum den Prozess zu beschleunigen.
Dachte mir, wenn ich eine Stringgridzeile nach der nächsten abarbeite dauert das länger als wenn ich gleichzeitig zwei Stringgridzeilen abarbeite.
Also die Memos brauche ich nicht.

Freundliche Grüße
Aaron

Hansa 8. Apr 2008 11:48

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Dann nimm zumindest irgendwas von TStrings. Das Memo stammt nämlich vom Edit ab ! Da ist für den Zweck hier viel unnötiges dabei. Größere Auswirkungen sind IMHO aber dadurch nicht zu erwarten.

Edit : Stop ! Wieso steht da jetzt Stringgrid ? :shock: Wenn nur diese Liste gebraucht wird und die Zeit schon eine Rolle spielt dann lasse die Finger weg von dem ganzen visuellen Zeugs.

aaron 8. Apr 2008 11:59

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Danke, mach ich.

Kann ich das mit den geraden und ungeraden besser so machen:
Delphi-Quellcode:
If advstringgrid1.RowCount mod 2 = 0 then gerade else ungerade
oder mit
Delphi-Quellcode:
lCount
Gruss
Aaron

TeronG 8. Apr 2008 14:38

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
kürzer/einfacher:
Delphi-Quellcode:
If odd(lCount) then ungerade else gerade
Aber dauert nur das Anzeigen so lange oder das abfragen aus dem Internet?

aaron 8. Apr 2008 16:55

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Zitat:

Zitat von TeronG
kürzer/einfacher:
Delphi-Quellcode:
If odd(lCount) then ungerade else gerade

Und wie wende ich das auf ein Stringgrid an in dem 500 und x mehr Zeilen stehen?
Wie definiere ich die geraden und die ungeraden Zahlen?

Zitat:

Zitat von TeronG
Aber dauert nur das Anzeigen so lange oder das abfragen aus dem Internet?

Das Abfragen aus dem Internet, es geht halt immer nur eine nach der nächsten, dadurch das ich zwei Abfragen auf einmal tätigen will erhoffe ich mir doch etwas mehr Geschwindigkeit.

Viele Grüße
Aaron

DeddyH 8. Apr 2008 17:02

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
2 Abfragen auf einmal wirst Du ohne Threads wohl nicht hinbekommen.

aaron 8. Apr 2008 17:12

Re: Stringgrid - GERADE/UNGERADE ZEILEN
 
Mißt, ich dachte ich käme um Threads herunm.
Ich habe mir schon oft Beispiele mit Threads angesehen, ich verstehe die meisten Beispiele einfach nicht, es geht dabei meistens um etwas völlig anderes.
Wenn ich ein Beispiel mit einem Stringgrid hätte wäre ich happy.
Also kann ich es mit meiner "Methode" vergessen.
Freundliche Grüße
Aaron


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 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