Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.12.28;
Скачать: CL | DM;

Вниз

Создать файл   Найти похожие ветки 

 
Костик   (2008-11-18 10:50) [0]

Как быстро создать файл, влить в него строку "Файл создан такойто программой" + либо что, чтобы получилось повно 512 байт на диске?


 
Palladin ©   (2008-11-18 10:53) [1]

В чем проблемы?


 
{RASkov} ©   (2008-11-18 10:59) [2]

...и для чего такая бестолковая задача?


 
Костик   (2008-11-18 11:12) [3]


> В чем проблемы?

Не пойму что надо дописывать в файл чтобы получить ровно столько байт?


 
@!!ex ©   (2008-11-18 11:13) [4]

> [3] Костик   (18.11.08 11:12)

что угодно. пробелы, например.


 
Правильный$Вася   (2008-11-18 11:32) [5]


> Не пойму что надо дописывать в файл

если "такой-то программой" будет длинное, то как бы отрезать не пришлось


 
Костик   (2008-11-18 11:38) [6]

Как мне расчитать? Это надо две строки Write(f, string) записать с любыми символами?


 
Palladin ©   (2008-11-18 11:41) [7]


> Как мне расчитать?

что именно расчитать то? ты хоть 5тый класс закончил?


 
{RASkov} ©   (2008-11-18 11:44) [8]

1 символ = 1 байт
перенос строки(каретки) = 2 символа...


 
Костик   (2008-11-18 11:46) [9]

У меня есть строка "такой-то программой". Как мне посчитать сколько она занимает байт в файле если ее туда записать. Потом, как мне записать в файл ровно 512 -  столько сколько занимет эта строка?


 
{RASkov} ©   (2008-11-18 11:51) [10]

> [9] Костик   (18.11.08 11:46)
> Как мне посчитать сколько она занимает байт в файле если ее туда записать.

Пальцы загибай при виде букв.... и того тебе нужно 51 раз на руках все пальцы загнуть и два пальца на ноге(один раз)...
Не забывай по два пальца сразу загибать при переносе каретки....
:о)


 
Костик   (2008-11-18 11:53) [11]

спасибо


 
Palladin ©   (2008-11-18 11:58) [12]


> {RASkov} ©   (18.11.08 11:51) [10]

:) ты чего насоветовал?! он при задаче записать 1мег в больницу попадет с производственной трамвой... да и уточнить ему сразу не мешало бы в какую сторону загибать :)
а то может прямо сейчас загреметь


 
Костик   (2008-11-18 12:00) [13]


var f: TextFile;
   i: Byte;
   s: String;
begin
s := Application.Title + " file";
for  i := length(s) to 255 do
s := s + " ";
for  i := 0 to 255 do
s := s + " ";
assign(f, NextFileName);
rewrite(f);
Write(f, s);
Flush(f);
CloseFile(f);
end;


 
{RASkov} ©   (2008-11-18 12:02) [14]

> [12] Palladin ©   (18.11.08 11:58)
> да и уточнить ему сразу не мешало бы в какую сторону загибать

Ой... надеюсь сообразит... если будет свои загибать, иначе сразу в глаз получит :)


 
{RASkov} ©   (2008-11-18 12:03) [15]

> [13] Костик   (18.11.08 12:00)

И что это за дурь? Кто тебя так учит? :)


 
Костик   (2008-11-18 12:05) [16]


> И что это за дурь? Кто тебя так учит? :)

напиши как  правильно


 
sniknik ©   (2008-11-18 12:17) [17]

циклы замени на
s:= s + StringOfChar(" ", 512 - Length(s));


 
{RASkov} ©   (2008-11-18 12:18) [18]

> [16] Костик   (18.11.08 12:05)

Может быть я бы тебе и написал как правильно, но я так и не пойму что тебе нужно и для чего это....
Да и смысла я не вижу в этих твоих пробелах в файле..... А размер файла можно указать произвольный и никаких марОк с пробелами или пальцами...
Ну а код [13] может быть и написан синтаксически верно, но логически - дурь полнейшая...


 
MsGuns ©   (2008-11-18 12:19) [19]

Пиши на физическом уровне :)


 
{RASkov} ©   (2008-11-18 12:25) [20]

var F: TextFile; S: String;
begin
 AssignFile(F, <filename.ext>);
 Rewrite(F);
 try
  S:=Application.Title;
  SetLength(S, 512);
  Write(F, S);
 finally
  CloseFile(F);
 end;
end;


 
Костик   (2008-11-18 12:31) [21]

Это все круто, а как чтобы 2000 таких файлов занимало на диске ровно 2000*512 байт


 
Amoeba ©   (2008-11-18 12:41) [22]


> Костик   (18.11.08 12:31) [21]
>
> Это все круто, а как чтобы 2000 таких файлов занимало на
> диске ровно 2000*512 байт

А это еще зачем понадобилось? В чем хоть заключается собственно "сверхзадача"?


 
Костик   (2008-11-18 12:54) [23]

Чтобы убрать следы


 
Anatoly Podgoretsky ©   (2008-11-18 13:02) [24]

> Правильный$Вася  (18.11.2008 11:32:05)  [5]

Не надо отрезать, надо ноги удлиннить.


 
Anatoly Podgoretsky ©   (2008-11-18 13:04) [25]

> {RASkov}  (18.11.2008 12:03:15)  [15]

Да учат то нормально, тут не в учителях дело.


 
Костик   (2008-11-18 13:10) [26]


> Да учат то нормально, тут не в учителях дело.

А в чём? В том что я не знаю пару функций? По моему это естественно...


 
Amoeba ©   (2008-11-18 13:14) [27]


> Костик   (18.11.08 12:54) [23]
>
> Чтобы убрать следы
>

Чьи следы? И вместо кого-то наследить самому?
Опиши всю задачу, партизан!


 
{RASkov} ©   (2008-11-18 13:21) [28]

> [26] Костик   (18.11.08 13:10)

Да тут не в функциях дело, а в тумане в твоей голове...)


 
Костик   (2008-11-18 13:22) [29]


> Опиши всю задачу, партизан!

Будем считать, что меня пытали: хочу, чтобы то, что удаляется с винта, нельзя было восстановить никогда в жизни...


 
{RASkov} ©   (2008-11-18 13:26) [30]

> [29] Костик   (18.11.08 13:22)

И что, ты решил забить все свободное место на винчестере файлами с пробелами? :)


 
Костик   (2008-11-18 13:28) [31]


> {RASkov} ©   (18.11.08 13:26) [30]

Да, а что не поможет?


 
sniknik ©   (2008-11-18 13:33) [32]

> Будем считать, что меня пытали:
считай что не зря. нет никаких гарантий что создание нового файла, не даст восстановить старый удаленный...
для того чтобы сделать то что ты хочешь нужно не создавать, а удалять старые с предварительно перезаписанным началом.
т.е. перед удалением открываешь файл на редактирование, пишешь в начало свою фигню, делаешь ему транкейт до 512 байт, и только после этого удаляешь.


 
sniknik ©   (2008-11-18 13:34) [33]

> Да, а что не поможет?
то что новые запишутся совсем не туда куда ты хочешь, а туда куда удобнее системе.


 
Anatoly Podgoretsky ©   (2008-11-18 13:35) [34]

> sniknik  (18.11.2008 13:33:32)  [32]

Вот и вирус готов.


 
Костик   (2008-11-18 13:49) [35]


> то что новые запишутся совсем не туда куда ты хочешь, а
> туда куда удобнее системе.

я ж весь винт забиваю, и ничего не сканирую, удалил то что не надо, перезалил и все, просто как не знаю даже что...


 
sniknik ©   (2008-11-18 13:52) [36]

ну если весь, и если не жалко времени... флаг тебе руки в общем. делай.


 
Юрий Зотов ©   (2008-11-18 14:00) [37]

> чтобы получилось повно 512 байт на диске?

На диске  - не получится. На диске файл размером 512 байт займет 1 кластер.


 
Костик   (2008-11-18 14:24) [38]

Да, 80Мб за час - долговато... Зато на работу почти не влияет. Я правильно понимаю что размер 512 в данном случае оптимально подходит?


 
clickmaker ©   (2008-11-18 14:29) [39]

> хочу, чтобы то, что удаляется с винта, нельзя было восстановить
> никогда в жизни...

тут магнит нужен.
остальное все - фигня, ФСБ найдет


 
Костик   (2008-11-18 14:42) [40]


> тут магнит нужен.остальное все - фигня, ФСБ найдет

ну это слишком


 
Anatoly Podgoretsky ©   (2008-11-18 15:07) [41]

> clickmaker  (18.11.2008 14:29:39)  [39]

Не просто магнит, а очень мощный магнит.
Гораздо лучше шредер или печка.


 
Vayrus   (2008-11-18 15:36) [42]

Попробуй это:

procedure TForm1.OpenClick(Sender: TObject);
var
FileName: string;

begin
OpenDialog1.Execute;

FileName:=OpenDialog1.FileName;

Path.Caption:= FileName;
end;

procedure TForm1.DeleteClick(Sender: TObject);
var
  buffer: array [0..4095] of Byte;
  max, n: LongInt;
  i,j,k: Integer;
  fs: TFileStream;
  FileName: String;
begin

case Num.Position of
0: k:=1;
1: k:=3;
2: k:=5;
3: k:=10;
4: k:=15;

end;
  FileName:= Path.Caption;
  fs := TFilestream.Create(FileName, fmOpenReadWrite or fmShareExclusive);
  try
    for i := 1 to k do
    begin
           for j := Low(buffer) to High(buffer) do
      buffer[j] := Random(256);
      max := fs.Size;
      fs.Position := 0;
      while max > 0 do
      begin
        if max > SizeOf(buffer) then
          n := SizeOf(buffer)
        else
          n := max;
        fs.Write(Buffer, n);
        max := max - n;
      end;
      FlushFileBuffers(fs.Handle);
    end;
  finally
    fs.Free;
  end;
  Deletefile(FileName);
  ShowMessage("Все пучком");
end;


 
Костик   (2008-11-18 15:55) [43]


> Vayrus   (18.11.08 15:36) [42]
> Попробуй это:

спасибо


 
@!!ex ©   (2008-11-18 16:10) [44]

> OpenDialog1.Execute;
>
> FileName:=OpenDialog1.FileName;
>
> Path.Caption:= FileName;

:))
2 замечания:
1) Не стоит игнорировать нажатие на Cancel в диалоге.
2) Зачем лишняя переменная?


 
Костик   (2008-11-18 16:51) [45]

Черт -  реальный вирус. 80 метров удалить до сих пор не могу...


 
Костик   (2008-11-18 17:05) [46]

Скажите плиз как файл удалить?


 
Anatoly Podgoretsky ©   (2008-11-18 17:06) [47]

> Костик  (18.11.2008 16:51:45)  [45]

Пригласи прогаммиста/системного администратора.


 
Костик   (2008-11-18 17:12) [48]

Анатолий вы не поверите, но реально я только с помощью DeleteFile() справился, ну тобишь программно.


 
Anatoly Podgoretsky ©   (2008-11-18 19:29) [49]

Знаешь я доверчивый после 48 сообщений.
Правда зачем было создавать файл, вливать в него строку и тут же удалять с помощью DeleteFile.


 
palva ©   (2008-11-19 00:45) [50]


> Скажите плиз как файл удалить?


Вот как удаляют файлы правильные пацаны:
"Если слежка угрожает вашей жизни, то необходимо заменить жесткий диск на новый, а старый диск разобрать и сточить с него верхний слой с помощью наждачной бумаги."
http://computerix.narod.ru/inter/gold3/pub/bez.htm


 
Германн ©   (2008-11-19 00:50) [51]

Бред.
Имхо.



Страницы: 1 2 вся ветка

Текущий архив: 2008.12.28;
Скачать: CL | DM;

Наверх




Память: 0.59 MB
Время: 0.014 c
4-1202741795
dreamse
2008-02-11 17:56
2008.12.28
Как получить список работающих на данный момент DLL от всех


15-1225078325
Slider007
2008-10-27 06:32
2008.12.28
С днем рождения ! 26 октября 2008 воскресенье


2-1226824815
NoDt
2008-11-16 11:40
2008.12.28
Как вызвать событие перерисовки формы.


15-1225096261
koha!
2008-10-27 11:31
2008.12.28
А кто может объяснить, а что это може означать?


2-1227080020
Andrey_ka
2008-11-19 10:33
2008.12.28
ошибка при закрытии проэкта