Автор | Сообщение |
|
| постоянный участник
|
Пост N: 3447
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.06.14 08:28. Заголовок: Какими функциями правильнее пользоваться ?
Всем привет. Подскажите пожалуйста, какими функциями работы с файлами правильней пользоваться ? Из СТ или для работы с memo, т.е. STRFILE(), FILESTR() или hb_memoread(), hb_memoread() ? Кстати про функции hb_memoread(), hb_memoread() нет в доке по xHarbour Language Reference Guide 1.1 Где можно почитать про них ?
|
|
|
Новых ответов нет
[см. все]
|
|
|
| |
Пост N: 48
Зарегистрирован: 07.06.08
|
|
Отправлено: 26.06.14 12:54. Заголовок: Можно почитать, напр..
|
|
|
|
| |
Пост N: 1096
Зарегистрирован: 11.06.10
|
|
Отправлено: 26.06.14 13:01. Заголовок: Andrey пишет: Подск..
Andrey пишет: цитата: | Подскажите пожалуйста, какими функциями работы с файлами правильней пользоваться ? |
|
они все правильные, какая задача стоит?
|
|
|
|
| постоянный участник
|
Пост N: 3450
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.06.14 13:55. Заголовок: a_sidorov пишет: Мо..
a_sidorov пишет: Мозила пишет: "Проблема при загрузке страницы!" AlexMyr пишет: цитата: | они все правильные, какая задача стоит? |
| Записать в файл, прочитать файл. Да любые действия с файлами... Какая разница между этими функциями ?
|
|
|
|
| |
Пост N: 1097
Зарегистрирован: 11.06.10
|
|
Отправлено: 26.06.14 15:04. Заголовок: Andrey пишет: Запис..
Andrey пишет: цитата: | Записать в файл, прочитать файл. |
|
пробуй hb_memoread, hb_memowrit. Andrey пишет: цитата: | Какая разница между этими функциями ? |
|
не вникал, использую hb_memo*.
|
|
|
|
| |
Пост N: 49
Зарегистрирован: 07.06.08
|
|
Отправлено: 26.06.14 15:41. Заголовок: Оптимально то, что р..
Оптимально то, что работает. А на счет hb_memoread() у меня очень большие сомнения о ее работоспособности, ну такое загрузил из одной достаточно короткой строки, что больше не доверяю. Скорее всего это разные библиотеки, которые делают одно и то же. Вопрос - какой программист больше ошибок допустил при написании. Мое мнение, нужно прочесть файл - читай проверенными способами.
|
|
|
|
| |
Пост N: 1098
Зарегистрирован: 11.06.10
|
|
Отправлено: 26.06.14 15:52. Заголовок: a_sidorov пишет: А ..
a_sidorov пишет: цитата: | А на счет hb_memoread() у меня очень большие сомнения о ее работоспособности |
|
hbmk2 использует hb_memoread, посмотрите исходники, какие сомнения?
|
|
|
|
| постоянный участник
|
Пост N: 977
Зарегистрирован: 27.01.07
|
|
Отправлено: 26.06.14 18:53. Заголовок: AlexMyr пишет: hbmk..
AlexMyr пишет: цитата: | hbmk2 использует hb_memoread, посмотрите исходники, какие сомнения? |
| Это - психология. Есть выражение: "Самая короткая дорога та, которую знаешь" :) Наш ум так работает. Если есть уже проверенное решение возникшего вопроса, автоматически будет выбрано оно. :) Тут рядом тема про hbmk2, path, bcc и батники: то же самое. :)
|
|
|
|
| постоянный участник
|
Пост N: 3452
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.06.14 23:08. Заголовок: PSP пишет: Если ест..
PSP пишет: цитата: | Если есть уже проверенное решение возникшего вопроса, автоматически будет выбрано оно. :) |
| Согласен ! Результат небольшого опроса - что нравиться, тем и пользуемся !
|
|
|
|
| постоянный участник
|
Пост N: 3453
Зарегистрирован: 12.09.06
|
|
Отправлено: 26.06.14 23:17. Заголовок: Теперь другой вопрос..
Теперь другой вопрос ? Можно ли как то сделать следующее - передать команду на закрытие своего ЕХЕ-ника ? Чтобы он нормально закрыл базы и вышел... Через файл не хочется. Сделал главное меню программы на МиниГуи, запускаю терминалку на хХарборе. Знаю хендл этой терминалки. При выходе из программы на МиниГуи нужно закрыть все открытые терминалки. Зная свой хендл приложения - можно ли через систему получить команду управления для своего хендла и обработать ? Ну или еще какие либо варианты есть...
|
|
|
|
| |
Пост N: 1099
Зарегистрирован: 11.06.10
|
|
Отправлено: 27.06.14 00:50. Заголовок: PSP пишет: Тут рядо..
PSP пишет: цитата: | Тут рядом тема про hbmk2, path, bcc и батники: то же самое. :) |
| если тоже самое, напишите разрабам - может поправят. Andrey пишет: цитата: | Согласен ! Результат небольшого опроса - что нравиться, тем и пользуемся ! |
| Andrey тему зачем открывал - просто потрепаться?
|
|
|
|
| постоянный участник
|
Пост N: 3455
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.06.14 09:49. Заголовок: AlexMyr пишет: Andr..
AlexMyr пишет: цитата: | Andrey тему зачем открывал - просто потрепаться? |
| Нет, не трепаться. И я её не закрывал... Для себя пока выводы сделал и работать продолжаю. А тема то не одна про дисковые функции, есть и другие вопросы - см. выше ! Уж очень заковыристый вопрос и не знаешь как к нему приступить....
|
|
|
|
|
| |
Пост N: 229
Зарегистрирован: 17.06.10
|
|
Отправлено: 27.06.14 10:28. Заголовок: Можно ли как то сдел..
цитата: | Можно ли как то сделать следующее - передать команду на закрытие своего ЕХЕ-ника ? |
| например через сокет
|
|
|
|
| |
Пост N: 1100
Зарегистрирован: 11.06.10
|
|
Отправлено: 27.06.14 10:52. Заголовок: Andrey пишет: Для с..
Andrey пишет: цитата: | Для себя пока выводы сделал и работать продолжаю. |
|
так на чем остановились, какие ф-ии исполььзуете?
|
|
|
|
| постоянный участник
|
Пост N: 352
Зарегистрирован: 17.02.12
|
|
Отправлено: 27.06.14 10:58. Заголовок: Andrey пишет:Сделал ..
Andrey пишет: цитата: | Сделал главное меню программы на МиниГуи, запускаю терминалку на хХарборе. Знаю хендл этой терминалки. При выходе из программы на МиниГуи нужно закрыть все открытые терминалки. |
| попробуй: PostMessage( hWnd, WM_KEYDOWN, VK_ESCAPE, 0) // если по ESC разрешен выход PostMessage( hWnd, WM_CLOSE, 0, 0) PostMessage( hWnd, WM_QUERYENDSESSION, 0, 0)
|
|
|
|
| постоянный участник
|
Пост N: 3456
Зарегистрирован: 12.09.06
|
|
Отправлено: 27.06.14 21:29. Заголовок: SergKis пишет: попр..
SergKis пишет: А как базы закрыть нормально при таком выходе из программы ? Т.е. если у меня в процедуре выхода стоит: EXIT PROCEDURE EXIT2WIN() ..... // моя отработка служебных записей в бд MyCloseJournal() .......... CLOSE ALL RETURN Функция MyCloseJournal() будет отрабатывать ?
|
|
|
|
| постоянный участник
|
Пост N: 354
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.06.14 00:16. Заголовок: Andrey пишет:Функция..
Andrey пишет: цитата: | Функция MyCloseJournal() будет отрабатывать ? |
| попробуй сделать: 1. Shut Down компу, с загруженной программой, система выдает приложениям WM_QUERYENDSESSION 2. нажать X (close) или Alt+F4 окна своего wwt приложения, что будет - это сообщение WM_CLOSE см. Harbor\src\rtl\gtwwt\gtwwt.c (line 866): Скрытый текст ... case WM_QUERYENDSESSION: /* Closing down computer */ hb_vmRequestQuit(); return 0; case WM_CLOSE: /* Clicked 'X' on system menu */ if( pWVT->bClosable ) { PHB_ITEM pItem = hb_itemPutL( NULL, HB_TRUE ); hb_setSetItem( HB_SET_CANCEL, pItem ); hb_itemRelease( pItem ); hb_vmRequestCancel(); } else hb_gt_wvt_AddCharToInputQueue( pWVT, HB_K_CLOSE ); ...
| думаю должно быть нормально все.
|
|
|
|
| постоянный участник
|
Пост N: 355
Зарегистрирован: 17.02.12
|
|
Отправлено: 28.06.14 10:20. Заголовок: Andrey если совсем х..
Andrey если совсем хочешь взять под управление, то делай PostMessage( hWnd, WM_KEYDOWN, VK_F12, 0) в задаче на F12 повесь блок кода своего "нормального" завершения прогр. без вопросов. вместо F12 можно взять и др. кл., например F15 или F10
|
|
|
|
| постоянный участник
|
Пост N: 3459
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.06.14 14:35. Заголовок: SergKis пишет: попр..
SergKis пишет: Спасибо большое ! Получилось нормально и с PostMessage( hWnd, WM_CLOSE, 0, 0) ! Повесил в свою программу отдельную обработку по этому событию и программа нормально закрывается. EXIT PROCEDURE EXIT2WIN() отрабатывает ВСЕГДА ! Потом нашел пример у Григория для МиниГуи: \MiniGUI\SAMPLES\Applications\CLOSEALL - классный пример !
|
|
|
|
| постоянный участник
|
Пост N: 3461
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.06.14 18:49. Заголовок: AlexMyr пишет: так ..
AlexMyr пишет: цитата: | так на чем остановились, какие ф-ии исполььзуете? |
| Теперь обеими функциями пользуюсь, для маленьких файлов. Для больших файлов, в случае добавления к существующему файлу, лучше использовать StrFile().
|
|
|
|