![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Уппссс - наверно в "Потрепаться" надо было :(