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

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

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2019, 14:28   #21
niockasd
Пользователь
 
Регистрация: 01.12.2015
Сообщений: 82
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
Для вашего Delphi попробуйте так
Winapi.Windows.FindClose(Handle);
Да, откомпилилось...
Но файл создает 0 байт если использовать эту функцию (....
Получается не выполняется условие
Код:
  if SizeFilesEx(FileTrasfer_Name) = FileTrasfer_Size then
не выполняется..

Последний раз редактировалось niockasd; 05.05.2019 в 14:31.
niockasd вне форума Ответить с цитированием
Старый 05.05.2019, 14:35   #22
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

а это условие выполняется ?
if SizeFilesEx(FileTrasfer_Name) < FileTrasfer_Size then // Если принято байт меньше размера файла, то...
BlockWrite(FFile, Pointer(Text)^, Length(Text)); // Записываем буфер в файл

и с fileSize так же или норм?

и с fileSize и SizeFilesEx сравните, если fileSize все норм значит пока пользуйтесь ей, SizeFilesEx я так подразумеваю не работает из за того что файл открыт на записи с этой функцией нужно по другому значит делать, после закрытия ей пользоваться

Но возможно что fileSize вам хватит, со временем увидите, как себя будет вести, может у меня просто в старых проектах так себя вел да и D7 у меня это косяк всплывал с большими файлами, поэтому я и применял SizeFilesEx

Последний раз редактировалось Aliens_wolfs; 05.05.2019 в 14:44.
Aliens_wolfs вне форума Ответить с цитированием
Старый 05.05.2019, 14:44   #23
niockasd
Пользователь
 
Регистрация: 01.12.2015
Сообщений: 82
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
а это условие выполняется ?
if SizeFilesEx(FileTrasfer_Name) < FileTrasfer_Size then // Если принято байт меньше размера файла, то...
BlockWrite(FFile, Pointer(Text)^, Length(Text)); // Записываем буфер в файл

и с fileSize так же или норм?

и с fileSize и SizeFilesEx сравните, если fileSize все норм значит пока пользуйтесь ей, SizeFilesEx я так подразумеваю не работает из за того что файл открыт на записи с этой функцией нужно по другому значит делать, после закрытия ей пользоваться
c SizeFilesEx условие

Код:
     if SizeFilesEx( FileTrasfer_Name) < FileTrasfer_Size then
срабатывает а до
Код:
  if SizeFilesEx(FileTrasfer_Name) = FileTrasfer_Size then
не доходит. Выходит считает неправильно...

с fileSize все работает, до 700 мб проверял файлы, передаются отлично...
niockasd вне форума Ответить с цитированием
Старый 05.05.2019, 14:46   #24
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

FileSize возможно уже в выше D7 исправлено, пока ей и пользуйтесь, со временем увидите как себя поведет с большими файлами
Aliens_wolfs вне форума Ответить с цитированием
Старый 05.05.2019, 14:47   #25
niockasd
Пользователь
 
Регистрация: 01.12.2015
Сообщений: 82
По умолчанию

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
FileSize возможно уже в выше D7 исправлено, пока ей и пользуйтесь, со временем увидите как себя поведет с большими файлами
принял ) еще раз спасибо за помощь.
niockasd вне форума Ответить с цитированием
Старый 05.05.2019, 14:49   #26
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

SizeFilesEx я так подразумеваю не работает из за того что файл открыт на записи с этой функцией нужно по другому значит делать, после закрытия файла ей уже пользоваться.
Цитата:
принял ) еще раз спасибо за помощь.
Да не за что разбирайтесь дальше

Проверил на DXE7 все таки не работает fileSize с более 2г
Вот так проверьте вроде работает 6гб увидел

Код:
function SizeFilesEx(out AFile: File): Int64;
var
Lo: Cardinal;
begin
Result:= -1;
if TFileRec(AFile).Handle > 0 then
begin
Result:= Windows.GetFileSize(TFileRec(AFile).Handle, nil);
Lo:= Windows.GetFileSize(TFileRec(AFile).Handle, @Result);
if Result = 1 then
inc(Result, MAXDWORD);
inc(Result, Lo);
end;
end;
использовать так
if SizeFilesEx(FFile) = FileTrasfer_Size then

Последний раз редактировалось Aliens_wolfs; 05.05.2019 в 20:52.
Aliens_wolfs вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# передача файлов в сети TaTT DoGG Помощь студентам 20 02.04.2017 15:53
Передача файлов по сети Shouldercannon Работа с сетью в Delphi 0 19.01.2016 15:30
передача файлов по сети SPD Общие вопросы Delphi 7 10.06.2011 00:24
Передача больших файлов чрез сокет D_E_N Работа с сетью в Delphi 0 18.01.2010 19:17
Передача файлов по сети SL1CK Работа с сетью в Delphi 3 05.12.2009 00:08