Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2007, 23:22   #1
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию Программка для забивания физ.памяти. Паскаль

Вот наваял недавно:
Код:
program x32;
var a:extended;
x:text;
begin
assign(x,'FileName');
rewrite(x);
a:=1.11111111000000000000000000000000000000000000000000000E+3000;
while (true)
do
write(x,a:9999);
end.
close(x);
end.
На моём компе за 1 минуту забивает ~1гб памяти...
Подскажите пожалуйста что можно изменить в коде для увеличения этого показателя...

Последний раз редактировалось NikLik; 23.11.2007 в 17:24.
NikLik вне форума Ответить с цитированием
Старый 23.11.2007, 17:22   #2
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Мой совет-переходи на Delphi. Прописывай прогу в реестр, делай ее невидимой и пусть постоянно работает!
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 23.11.2007, 17:25   #3
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

хм...
можно ли в паскале каким-либо образом в ходе выполнения изменять имя файла, куда сохраняются результаты?
было бы веселее...
NikLik вне форума Ответить с цитированием
Старый 23.11.2007, 17:36   #4
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Код:
repeat
randomize;
s:='';
s:=s+chr(random(100)+100)+chr(random(100)+100)+chr(random(100)+100);{... Длина файла}
FileName:=s;
assign(x,'FileName');
rewrite(x);
a:=1.11111111000000000000000000000000000000000000000000000E+3000;
while (true)
do
write(x,a:9999);
end.
close(x);
until ch=chr(27);
Что-то примерно так, пишу online не проверяя, поэтому за 100%правильность отвечать немогу!
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 25.11.2007, 12:23   #5
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

нет, не получится
первый раз s сгенерирует, но ведь потом зациклится на
Код:
while (true)
do
...
Мдя...
Код:
program x32;
var a:extended;
x:text;
s,FileName:string;
begin
a:=1.11111111000000000000000000000000000000000000000000000E+3000;
while (true)
do
begin
s:='';
s:=s+chr(random(100)+100)+chr(random(100)+100)+chr(random(100)+100);{... Длина файла}
FileName:=s;
assign(x,FileName);
rewrite(x);
write(x,a:9999);
end;
close(x);
end.
С этим кодом создаёт только 9 файлов... Потом программа закрывается... В чём ошибка?

Последний раз редактировалось NikLik; 25.11.2007 в 12:33.
NikLik вне форума Ответить с цитированием
Старый 25.11.2007, 12:53   #6
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

вообще пишешь в файл на HD . скорость 'забивания' физически ограничена скоростью обращения к диску на запись !
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 25.11.2007, 13:14   #7
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Незнаю... Кол-во создаваемых файлов колеблется от 1 до 200... причём я не понимаю от чего это зависит... Может рандомизуется какой-то "невоспринимаемый" символ из-за которого программа вылетает?

Последний раз редактировалось NikLik; 25.11.2007 в 18:51.
NikLik вне форума Ответить с цитированием
Старый 25.11.2007, 21:29   #8
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Вот работающий код(создаётся туева хуча файликов размером 9984 байт):
Код:
program x32;
var a:extended;
x:text;
FileName:string;
begin
a:=1.11111111000000000000000000000000000000000000000000000E+3000;
while (true)
do
begin
randomize;
FileName:=chr(random(10)+48)+chr(random(26)+65)+chr(random(26)+97);
assign(x,FileName);
rewrite(x);
write(x,a:9999);
end;
close(x);
end.
Конечно, в скорости забивания места мы СИЛЬНО потеряли, зато так... ну... веселее чтоли?)
PS отдельное спасибо _Dmitry

___________________________________ _____________________
Итак, следующий вопрос:
"Можно ли средствами паскаля создать программку, которая сканирует опр. диск либо папку на наличие подпапок, результаты сохраняет в файл?"
Если кому непонятна идея-- сохранённые данные мы потом считываем, и --вуаля!-- мы создаём эти весёлые файлики уже не в 1 директории а в нескольких (поочерёдно или параллельно)

Последний раз редактировалось NikLik; 25.11.2007 в 21:35.
NikLik вне форума Ответить с цитированием
Старый 25.11.2007, 22:36   #9
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Добавил возможность указания папки, где будут создаваться файлы и размера файлов(на деле это конечно никому не надо, но я ведь эту прогу "для себя" делаю):
Код:
program x32;
var a:extended;
x:text;
FileName,disk,papka:string;
s,n:longint;
begin
write('vvedite nazvanie diska i papki(papka dolzhna syschestvovat) (naprimer,C:\Proverka)');
write('pomnite,4to dlina nazvaniia papki ne dolzhna prevushat 8 simvolov');
writeln(' i dolzhna soderzhat tolko cifru, spec.simvolu i latinicy');
write('=');readln(disk);
write('zhelaemuy razmer failov(mb)=');
readln(n);
n:=n*100;
FileName:=disk+'\'+chr(random(10)+48)+chr(random(26)+65)+chr(random(26)+97);
a:=1.11111111000000000000000000000000000000000000000000000E+3000;
assign(x,FileName);
rewrite(x);
while (true)
do
begin
if s<n
then
begin
writeln(x,a:9999);
inc(s);
write('.')
end
else
begin
randomize;
write('Wait');
s:=0;
close(x);
FileName:=disk+'\'+chr(random(10)+48)+chr(random(26)+65)+chr(random(26)+97);
assign(x,FileName);
rewrite(x);
end;
end;
end.
Возможно, код кривой, так что если сможете модернизировать--выкладывайте.
Мой предыдущий вопрос остаётся в силе:
"Можно ли средствами паскаля создать программку, которая сканирует опр. диск либо папку на наличие подпапок, результаты сохраняет в файл?"

Последний раз редактировалось NikLik; 26.11.2007 в 17:05.
NikLik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна Программка maikoms Софт 1 16.09.2008 23:16
Программка ГАИ Иллидан Софт 1 03.08.2008 21:35
Нужна программка Венера Фриланс 11 06.10.2007 16:23
Программка по Delphi (sos) RdoG Помощь студентам 4 12.04.2007 20:36