Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IMHO чисто паскалевский подход при работе с файлами лучше :) [D5, Win2k]


Альф ©   (2003-02-06 16:52:00) 

Пример - сохранить в файл массив:

TDoubleListCell = record
TADoubleListCell = array of TDoubleListCell;
FDoubleListCell = file of TDoubleListCell;
...
FDLCells: TADoubleListCell;
...
procedure SaveToFile(FileName: TFileName);
var
f: FDoubleListCell;
i: integer;
handle: THandle;
bufSize: integer;
newSize: integer;
begin
if Length(FDLCells) > 0
then begin
{$IFDEF PASCALSTYLE}
AssignFile(f, FileName);
try
Rewrite(f);
for i:= Low(FDLCells) to High(FDLCells) do
Write(f, FDLCells[i]);
finally
CloseFile(f);
end;{try}
{$ELSE}
handle := FileCreate(FileName); // =(-1)
if handle <> (-1)
then begin
bufSize:= Length(FDLCells)*sizeof(TDoubleListCell);
newSize:= FileWrite(handle, FDLCells[0], bufSize); // newSize <> bufSize
if newSize = bufSize
then // Все Ok
else if newSize =(-1)
then raise EDictionary.Create("-1")
else raise EDictionary.Create("");
FileClose(handle);
end else // :(
{$ENDIF}
end else raise EDictionary.Create("Nothing to write");
end;{}

Так паскалевский вариант и смотриться лучше и меньше занимает :)))


gsu   (2003-02-06 17:55:00) [1]

залезть, все, блин, везде лажаюсь, пора отдыхать


gsu   (2003-02-06 17:54:00) [2]

>> Кот Бегемот © (06.02.03 17:39)
убедил в чем ? я говорил: "красивей"

>> Palladin © (06.02.03 17:45)
достаточно залесть внутрь


Palladin   (2003-02-06 17:45:00) [3]

Кот Бегемот © (06.02.03 17:39)
почудилось словосочетание "чисто паскалевский" :)

меня просто удивило, что значит "паскалевский"...
то есть, есть еще и "не паскалевский"...

2 gsu
TFileStream и пр. это есть классовая оболочка для функций файлового ввода вывода...


Кот Бегемот   (2003-02-06 17:39:00) [4]

2Palladin © (06.02.03 17:15)
"О грязи" тут никто не упоминал :))) - а файловые операции в SysUtils ипользуют ВинАпи :)
Хотя никто не даст гарантии что юзанье Rewrite и т.п. выльется в дальнейшем во чтото неизвесное :)))

2gsu © (06.02.03 17:17)
ГЫЫЫЫЫ :)))))
function THandleStream.Read(var Buffer; Count: Longint): Longint;
begin
Result := FileRead(FHandle, Buffer, Count);
if Result = -1 then Result := 0;
end;

- убедил ???


Palladin   (2003-02-06 17:23:00) [5]


> Так паскалевский вариант и смотриться лучше и меньше занимает
> :)))

это типа какой еще паскалевский?
а какой тогда непаскалевский?


gsu   (2003-02-06 17:17:00) [6]

через потоки красивей


Palladin   (2003-02-06 17:15:00) [7]

приведи пожалуста "грязный" способ работы с файлами в данном случае, с использованием WinAPI и SysUtils, для сравнения...


gsu   (2003-02-06 17:13:00) [8]

FileWrite -> SysUtils


Альф   (2003-02-06 17:02:00) [9]

2gsu © (06.02.03 16:56)
>чем какой
Чем подход с использованием SysUtils или WinAPI
>и чем ?
Так паскалевский вариант и смотриться лучше и меньше занимает :)))


gsu   (2003-02-06 16:56:00) [10]

>> чисто паскалевский подход при работе с файлами лучше
чем какой и чем ?


Альф   (2003-02-06 16:53:00) [11]

Уппссс - наверно в "Потрепаться" надо было :(


Наверх

Титульная страница Поиск, карта сайта Написать письмо