Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Присылайте нам Донат :), напишите за что прислали )


Ответ
 
Опции темы
Старый 05.05.2019, 15:28   #21
niockasd
Форумчанин
 
Регистрация: 01.12.2015
Сообщений: 56
Репутация: 10
По умолчанию

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

  if SizeFilesEx(FileTrasfer_Name) = FileTrasfer_Size then

не выполняется..

Последний раз редактировалось niockasd; 05.05.2019 в 15:31.
niockasd вне форума   Ответить с цитированием
Старый 05.05.2019, 15:35   #22
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 892
Репутация: 435
По умолчанию

а это условие выполняется ?
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 в 15:44.
Aliens_wolfs вне форума   Ответить с цитированием
Старый 05.05.2019, 15:44   #23
niockasd
Форумчанин
 
Регистрация: 01.12.2015
Сообщений: 56
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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, 15:46   #24
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 892
Репутация: 435
По умолчанию

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

Цитата:
Сообщение от Aliens_wolfs Посмотреть сообщение
FileSize возможно уже в выше D7 исправлено, пока ей и пользуйтесь, со временем увидите как себя поведет с большими файлами
принял ) еще раз спасибо за помощь.
niockasd вне форума   Ответить с цитированием
Старый 05.05.2019, 15:49   #26
Aliens_wolfs
Участник клуба
 
Регистрация: 16.12.2009
Адрес: WWW ЛЕНИНГРАД СПб точка РУ
Сообщений: 892
Репутация: 435
По умолчанию

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 в 21:52.
Aliens_wolfs вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


07:18.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru