AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ContentControls zufällig befüllen

Ein Thema von Pader1305 · begonnen am 24. Sep 2018 · letzter Beitrag vom 25. Sep 2018
Antwort Antwort
Pader1305

Registriert seit: 13. Aug 2018
12 Beiträge
 
#1

ContentControls zufällig befüllen

  Alt 24. Sep 2018, 13:25
Delphi-Version: 10.1 Berlin
Hallo Zusammen,

ich schreibe gerade ein Analysetool, um herauszufinden, ob normale Textmarken oder Content Controls schneller sind.
Nun möchte ich die Content Controls zufällig befüllen lassen und habe dies mit folgender Schleife umgesetzt.

Delphi-Quellcode:
while lLoop < 51 do
        begin
        lRandom := RandomRange(1,100);
        if lWordInstanz.ContentControls.Item(lListeMarken[lRandom]).Range.Text = 'Testthen
          begin
            continue;
          end
        else
          begin
            lWordInstanz.SelectContentControlsByTag('CC' + IntToStr(lRandom)).Item(1).Range.Text := 'Test';
            lLoop := lLoop +1;
          end;
        end;
Allerdings befüllt er nie 50 Felder, sondern immer weniger. Weiß jemand auf die Schnelle woran es liegen könnte?
Über jede Hilfe würde ich mich sehr freuen!
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.758 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: ContentControls zufällig befüllen

  Alt 24. Sep 2018, 13:35
Was genau bei Dir schief läuft kann ich anhand des Fragments nicht sagen. Was ich aber sagen kann ist: Bei OLE Automation, die performant sein muß, immer early binding verwenden und Variante Datentypen meiden wie der Teufel das Weihwasser.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#3

AW: ContentControls zufällig befüllen

  Alt 24. Sep 2018, 14:27
Du befüllst per Random bis zu 50 Mal irgendein Feld. Theoretisch könnte bei Random immer die gleiche Zahl herauskommen, so dass letztlich nur ein Feld 50 mal befüllt wird und nicht 50 Felder.

Du kannst nicht davon ausgehen, dass bei 50 Aufrufen von Random auch 50 unterschieldliche Werte rauskommen.

Protokolliere doch bei lRandom := RandomRange(1,100); mal mit, welche Werte lRandom dabei so annimmt und ob keiner der Werte doppelt vorkommt.
  Mit Zitat antworten Zitat
Pader1305

Registriert seit: 13. Aug 2018
12 Beiträge
 
#4

AW: ContentControls zufällig befüllen

  Alt 24. Sep 2018, 14:33
Du befüllst per Random bis zu 50 Mal irgendein Feld. Theoretisch könnte bei Random immer die gleiche Zahl herauskommen, so dass letztlich nur ein Feld 50 mal befüllt wird und nicht 50 Felder.

Du kannst nicht davon ausgehen, dass bei 50 Aufrufen von Random auch 50 unterschieldliche Werte rauskommen.

Protokolliere doch bei lRandom := RandomRange(1,100); mal mit, welche Werte lRandom dabei so annimmt und ob keiner der Werte doppelt vorkommt.

Hi, danke erstmal für eure Antworten!

Ich dachte das mache ich bereits, da ich schaue, ob in dem Feld bereits "Test" drin steht, wenn wohl soll er zum Schleifenanfang zurück und dort eine neue Zufallszahl ziehen
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.758 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: ContentControls zufällig befüllen

  Alt 25. Sep 2018, 08:19
Durch den Algorithmus kannst du aber keinerlei zuverlässige Aussagen über Performance machen.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  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 14:15 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