Výsledky 1 až 8 z 8

Téma: funkce random v Delphi?

  1. #1

    Standardní funkce random v Delphi?

    Zdravim vsechny a chtel bych se poptat zkusenejsich - existuje neco jako funkce random v Delphi? Potreboval bych najit nejakou funkci skrz kterou bych byl schopen nahodne nacist napr. 5 souboru z celkovych x umistenych v jednom adresari a nejak zajistit, aby se zadny neobjevil 2x.. Moje znalosti na to, musim priznat, nestaci.. Dekuji moc za kazdou radu, pripadne odkaz na nejaky server s navody..

  2. #2
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní

    Hmm Delphi na to neni zrovna optimalni, nejsem si vedom nejake funkce, ktera by vratila seznam souboru v adresari, takze tam musis pouzit jeho komponenty
    DriveComboBox, DirectoryListBox, FileListBox, ktere spolu provazes pres DirList u DriveComboBox a FileList u DirectoryListBox,
    pak si budes zjistovat pocet souboru v danem adresari, coz bude maximalni generovane cislo a budes si muset zjistovat, jestli to cislo je uz generovane, pokud ano, vygenerujes znova a pak uz jen nactes ty soubory, podle cisel, ktere jsi vygeneroval
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  3. #3
    Senior Member Avatar uživatele D_a_v_i_d
    Založen
    08.12.2002
    Bydliště
    Praha
    Věk
    44
    Příspěvky
    5 153
    Vliv
    358

    Standardní

    Me by jen zajimalo, k jakemu ucelu to bude slouzit?
    A Jedi gains power through understanding; a Sith gains understanding through power

    Destkop machine: Intel Core i5 2400/MSI P67A-C45 /2x4 GB DDR3 1333 MHz/Sapphire HD6790/22" LCD HP w2216/DSL 8MBit connected
    Na filmy v posteli: Lenovo IdeaPad S9e/1,6 GHz Intel Atom, 1 GB RAM, 80 GB HDD
    Na práci: Dell E5500/T9550 2,66 GHz Intel, 3 GB RAM, 120 GB HDD

  4. #4
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní

    Jelikoz jsem se dobre vyspal, tak tu mas i cast kodu
    Kód:
    function TForm1.numExists(pole: array of integer; num, y: integer): boolean;
    var x: integer;
    begin
      numExists := false;
      for x := 0 to y do
      begin
        if (num = pole[x]) then
        begin
          numExists := true;
          break;
        end;
      end;
    end;
    
    
    procedure TForm1.Button1Click(Sender: TObject);
    var x, y, count, file_count: integer;
        numbers: array[0..99] of integer;
    begin
      randomize;
      count := FileListBox1.Count;
      y := 0;
      if &#40;count < 5&#41; then file_count &#58;= count
      else file_count &#58;= 5;
      while &#40;y < file_count&#41; do
      begin
        x &#58;= random&#40;count&#41;;
        if &#40;numExists&#40;numbers,x, y&#41; = false&#41; then
        begin
          numbers&#91;y&#93; &#58;= x;
          y &#58;= y + 1;
        end;
      end;
    end;
    Jak rika, pascal je uz hodne obsolete, to pole by melo byt dynamicke, nikdy totiz nevis, kolik tech soubory tam bude, klidne jich muze byt vice nez 100, ale myslim ze to uz by asi bylo nad tve sily.
    Nacitani souboru si uz musis dodelat sam
    Moc jsem to nezkoumal, muze tam byt nejaka chybicka, ale princip je z toho jasny.
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  5. #5

    Standardní

    V Delphi su dynamicke polia uplne easy, staci pouzit SetLength()...
    Hadam FindFirst() a FindNext() funguju.
    1: Asus P2B 1.10 • Celeron 1100@1364/1.8V • 512MB SDRAM • Samsung SP1213N+WD AC28400 • Toshiba XM-6402B+SD-M1212 • PowerColor AR2L Radeon 9100 64MB • 3C900-Combo • Bt848A • ASB-3940UA • AWE-64 • DTK PTP-3007 • VisionMaster 405 • Umax UC630 • Star LC24-200 Colour 2: PCPartner TXB820DS • Cyrix MII PR300/1.8V • 256MB SDRAM • 2xSamsung HD400LD+IT8212F • Accesstek CW4001 • LS-120 • Mystique 4MB • Millennium II 4MB • 3C509 • CMI8329A+Dream MIDI • ADI ProVista E44 • SyncMaster 203B Notebook: DTK FortisPro TOP-5A • P166MMX/1.8V • 80MB EDO • Hitachi 5K80 40GB • 12,1" TFT Router: A-Trend ATC-1425B • i486DX 50@33/5V • 48MB FPM • WD AC14300 • UMC UM9003F • HP PC LAN 16/TP+ Car: Mazda 323P BA • Z5 1489ccm, 65kW@5500rpm, 134Nm@4000rpm

  6. #6
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní

    Citace Původně odeslal Rainbow
    V Delphi su dynamicke polia uplne easy, staci pouzit SetLength()...
    Hadam FindFirst() a FindNext() funguju.
    Fiha, to jsou me novinky, jsem vzdy pouzival pointery a GetMem, dobre vedet...
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

  7. #7

    Standardní

    Citace Původně odeslal Lopan
    Fiha, to jsou me novinky, jsem vzdy pouzival pointery a GetMem, dobre vedet...
    No fuj teda...
    Delphi ma docela dost ficurek ohledne dynamickeho alokovani pameti v nekterych typech... Pocinaje objektama, dynamickymi poly konce. Dokonce ani symbol ^ uz se nemusi pouzivat...
    In a world without fences and walls, who needs Gates and Windows? | Nesnáším wide monitory.
    Workstation: Xeon E3-1275v5 :: Silentmaxx TwinBlock fanless :: Fujitsu D3417-B :: 32 GB ECC DDR4 :: Radeon Pro WX 2100 fanless :: Dell UP2715K :: Gentoo
    Server: Xeon E3-1245v6 :: Supermicro X11SSH-F :: 32 GB ECC DDR4 :: Aquantia 5GBase-T :: 36 TB storage :: Gentoo Hardened

  8. #8
    Senior Member
    Založen
    07.10.2002
    Bydliště
    Ostrava / Straznice
    Příspěvky
    1 133
    Vliv
    289

    Standardní

    Hmmm, no ja take netvrdim, ze jsem znalec Delphi, toto o neco vylepsuje muj nazor na Delphi, ale stale to je Pascal, to uz bych radeji sel do Borland C++ Builder, bavime-li se o Windows a celkove si myslim, ze pro win32 aplikace bude rulovat C#
    Intel C2D 4300, 1GB DDR2, 120GB Seagate, nVidia7600GT pasiv.

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •