Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.04.2006, 12:38
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию Растущий файл

Приветствую может кто подскажет как написать растущий файл до размера свободного места на жестком диске че то не получается ...
Ответить с цитированием
  #2  
Старый 21.04.2006, 13:20
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

А что конкретно не получается то, поподробней можно?

хм... если файловая система FAT32 то и не получится больше 4Гб файл создать.
Ответить с цитированием
  #3  
Старый 21.04.2006, 13:41
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию

Да проблема в криворучии но совета не у кого спросить
короче так
включаем таймер
узнаем рамер жесткого диска именно его свободного места
создаем файл растущий на скажем 1024 кб
сравниваем размеры места с файлом если место меньше чем файл то конец
кода щя нету с собой дома лежит но в общем программа останавливается когда места на винте еще до хрена голову сломал уже может есть готовое решение ?
Ответить с цитированием
  #4  
Старый 21.04.2006, 17:12
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

ну например так: (без таймера но работает)
Код:
const Size = 8192;

procedure TForm1.Button1Click(Sender: TObject);
var fFile: TFileStream;
    Free,Total,TotFree: int64;
begin
    fFile:= TFilestream.Create('file.dat',fmOpenWrite);
    repeat
       If fFile.Write(Total,Size) <> Size then ShowMessage('Не все записалось'); 
       GetDiskFreeSpaceEx('C:\',Free,Total,@TotFree);
    until Free<= 8192;//пока на диске не останется 8килобайт
    fFile.Free;
end;

заполняем файл мусором (тем что в переменной Total и тем что следует после нее- криво, но для примера сойдет...) Схавал у меня все место
Ответить с цитированием
  #5  
Старый 21.04.2006, 17:19
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию

Блин как ты это ? как я далек до твоего уровня.. не скажешь где обучался ?
Ответить с цитированием
  #6  
Старый 21.04.2006, 17:22
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию

заполняем файл мусором (тем что в переменной Total и тем что следует после нее- криво, но для примера сойдет...) Схавал у меня все место [/quote]


спасибо кстате ))
Ответить с цитированием
  #7  
Старый 21.04.2006, 17:22
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
Смех

:d :d :d
Как, все работает??
я тока 1 гиг умучал, на большее нервов не хватило смотреть.
Ответить с цитированием
  #8  
Старый 21.04.2006, 17:41
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию

да не , просто код посмотрел и ахренел..как все не понятно ))) я ламер в этом . а попробую дома с собой дельфина нету .выходной убил на сие детище ты взял за 5 минут настрочил какую литературу посоветуешь?
Ответить с цитированием
  #9  
Старый 21.04.2006, 22:49
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию

Дома не заработало
стрелку сюда завела "fFile:= TFilestream.Create('file.dat',fmOpenWrite);"
с ошибкой ((
Ответить с цитированием
  #10  
Старый 21.04.2006, 23:08
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

ну, какую ошибку то хоть выдал??? может модуль не подключен нужный?, TFileStream
в classes объявлен...
Ответить с цитированием
  #11  
Старый 21.04.2006, 23:15
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

да, и не забудь файл создать, в приведенном мною коде файл не создается
Ответить с цитированием
  #12  
Старый 21.04.2006, 23:22
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

const Size = 8192;

procedure TForm1.Button1Click(Sender: TObject);
var fFile: TFileStream;
Free,Total,TotFree: int64;
begin
fFile:= TFilestream.Create('file.dat',fmOpenWrite);
repeat
If fFile.Write(Total,Size) <> Size then ShowMessage('Не все записалось');
GetDiskFreeSpaceEx('C:\',Free,Total,@TotFree);
until Free<= 8192;//пока на диске не останется 8килобайт
fFile.Free;
end;

end.


это весь код что не так ? ошибка project progect1.exe raised exception class efopenerror with message"
'cannot open filefile.dat'
Ответить с цитированием
  #13  
Старый 21.04.2006, 23:24
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию

Цитата:
Сообщение от AlexZL
да, и не забудь файл создать, в приведенном мною коде файл не создается
блин я полный лол)))
Ответить с цитированием
  #14  
Старый 21.04.2006, 23:24
AlexZL AlexZL вне форума
Новичок
 
Регистрация: 06.01.2006
Сообщения: 87
Репутация: 20
По умолчанию

файла он не нашел 'file.dat'

да, в этом то и дело....
Ответить с цитированием
  #15  
Старый 21.04.2006, 23:29
ARM ARM вне форума
Прохожий
 
Регистрация: 21.04.2006
Сообщения: 13
Репутация: 10
По умолчанию

заработало
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:50.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter