[Delphi] Генератор мусора

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by ex3me, 27 Jul 2009.

  1. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    Интересует предмет реализации софта на делфях,
    основная задача которого: создать файл и максимально быстро заполнять его мусором (рандомные буквы, цифры и т.д.), до окончания свободного места на диске.

    Может у кого завалялось что-нить подобное? :rolleyes:
     
    2 people like this.
  2. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    А что сам софтинку навоять не можешь? Там вроде сильно сложного ничего быть не может. Это я так думаю...:)
     
    3 people like this.
  3. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    ну типа эээ

    Code:
    #include <stdio.h>
    int main(){
    FILE *f=fopen("~temp","w");
    while(1) fputc(0x66,f);
    return 0;
    }
    
    ? я просто на си быстрее соображаю чем на паскале ))
     
    _________________________
  4. ex3me

    ex3me Member

    Joined:
    7 Jan 2009
    Messages:
    0
    Likes Received:
    63
    Reputations:
    0
    :D действительно while true do begin... А я как идиот сижу да генераторы словарей переделываю )
     
  5. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    LOL
     
    _________________________
  6. Thenno

    Thenno Member

    Joined:
    3 Jul 2009
    Messages:
    77
    Likes Received:
    21
    Reputations:
    0
    Код на паскале:
    Code:
    program tresh;
    var
      f:text; s:string;
    begin
      assign (f, 'file.txt');
      rewrite (f);
      randomize;
      repeat
        writeln (f,random(256));
      until s='bugaga';
      close (f);
    end.
    
    Или я уже поздно?
     
    2 people like this.
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    А вот теперь я вам скажу что все преведенные методы - это медленные ))
    Потому как запись на винт буферезованная и по сто раз гонять функцию - это бред.
    Самый быстрый метод - писать большими блоками.
    Code:
     buf = VirtualAlloc(0, 1024*1024, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
     for (i = 0; i<1024*1024; i++) buf[i] = rand() % 256;
    ...... CreateFile .............
     while (1)
    {
    ...... WriteFile(... buf, 1024*1024...) .............
    }
    
     
    1 person likes this.
  8. Thenno

    Thenno Member

    Joined:
    3 Jul 2009
    Messages:
    77
    Likes Received:
    21
    Reputations:
    0
    Был не прав, исправлюсь)
     
  9. 0verbreaK

    0verbreaK Elder - Старейшина

    Joined:
    30 Apr 2008
    Messages:
    318
    Likes Received:
    42
    Reputations:
    -3
    можно ли назвать "это" генератором мусора?!
     
  10. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    а ещё лучше - сразу брать какиен-ть участки памяти уже заполненные. типа секцию дампить без всяких VirtualAlloc'ов и тп.