Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вот такие странности / 4 сообщений из 4, страница 1 из 1
24.04.2014, 16:03
    #38624877
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вот такие странности
Есть такой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
debugstr=FULLPATH(_myprg)+CHR(13)+CHR(10)+'1.   '+STR(SECONDS())+CHR(13)+CHR(10)
COPY MEMO frt TO (_myprg)
=ADIR(m, _myprg)
debugstr=debugstr+'2.   '+STR(SECONDS())+'   '+STR(m(1,2))+CHR(13)+CHR(10)
sql_lib.open_file(_myprg, .f.)
RELEASE m
=ADIR(m, _myprg)
debugstr=debugstr+'3.   '+STR(SECONDS())+'   '+STR(m(1,2))+CHR(13)+CHR(10)

RELEASE m
APPEND MEMO frt FROM (_myprg) OVERWRITE 
debugstr=debugstr+'4.   '+STR(SECONDS())+CHR(13)+CHR(10)
ERASE (_myprg)
debugstr=debugstr+'5.   '+STR(SECONDS())+CHR(13)+CHR(10)



отладка выдает:
D:\ASUP21_PROJ\MAINHELP\_41W0WEBA4.XML
1. 54416
2. 54416 21112
3. 54438 21112
4. 54438
5. 54438

При этом изменения в файл внесены, TotalComander показывает новую длину файла, просмотр строки(filetostr(_myprg)) показывает правильное содержимое

sql_lib.open_file - по сути:(+некий доп сервис)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
oApplicat=CREATEOBJECT("WScript.Shell")
oerror=.f.
TRY
	oApplicat.Run('"'+m.file_name+'"' , 3, .t.)
CATCH TO oerror
	MESSAGEBOX(oerror.message,16,"Файл "+m.file_name+" не открыт")
ENDTRY



Проблема в том, что в точке. 3 adir показывает старую длину файла, и соответственно Append memo подгружает неисправленную версию файла. Seconds я вывожу для того, чтобы убедиться, что программа ожидает завершения oApplicate.Run
...
Рейтинг: 0 / 0
24.04.2014, 17:01
    #38624959
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вот такие странности
Опыт показал, что задержка на 1 секунду перед точкой 3 задачу решает (пробовал с шагом 0,5 сек). Но как-то не красиво, да и машины бывают разные...
...
Рейтинг: 0 / 0
25.04.2014, 16:16
    #38625969
po2
po2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вот такие странности
FLUSH [[IN nWorkArea | cTableAlias] | [cFileSpec]] [FORCE]
...
Рейтинг: 0 / 0
06.05.2014, 15:52
    #38634714
glamis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вот такие странности
po2,

flush не работает. чтобы сбросить буфер файл должен быть открыт в фоксе. а здесь он открывается в другом проложении. в данном случае - excel
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вот такие странности / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]