Автор | Сообщение |
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 19.03.09 19:36. Заголовок: Файлы с длинными именами
Здравствуйте, господа! Я читал раньше о попытках реализации в Clipper функций, позволяющих работать с файлами, имеющими длинные имена. Имеются в виду DBF и текстовые файлы, которые нужно уметь найти, открыть, создать и модифицировать. Добился ли кто-нибудь устойчивой работы таких функций? И если да, то как получить к ним доступ?
|
|
|
Ответов - 20
[только новые]
|
|
|
| постоянный участник
|
Пост N: 23
Зарегистрирован: 13.09.07
|
|
Отправлено: 20.03.09 11:06. Заголовок: Посмотри на Оа..
Посмотри на Оазисе по ссылке http://www.the-oasis.net/ftpmaster.php3?content=ftplib.htm файл с именем dblfn005.zip. В нем нужная тебе библиотека и исходные тексты. А вообще есть смысл перейти на Harbour. Сам перешел абсолютно безболезненно, при этом исчезли масса проблем. Конечно если нужно GUI, то придется попотеть, но если работать в текстовом режиме, то все аналогично тому, как в Clipper только с кучей новых возможностей!
|
|
|
|
| |
Пост N: 1
Зарегистрирован: 14.11.09
|
|
Отправлено: 14.11.09 16:04. Заголовок: Здравствуйте! Скаж..
Здравствуйте! Скажи пожалуйста, а есть ли еще способы решения этой проблемы? ОЧЕНЬ НУЖНО!!! Заранее спасибо!
|
|
|
|
| |
Пост N: 1319
Зарегистрирован: 17.05.05
|
|
Отправлено: 14.11.09 16:51. Заголовок: Nadya пишет: Скажи ..
Nadya пишет: цитата: | Скажи пожалуйста, а есть ли еще способы решения этой проблемы? |
| В какой операционной системе ?
|
|
|
|
| |
Пост N: 2
Зарегистрирован: 14.11.09
|
|
Отправлено: 14.11.09 18:22. Заголовок: Dima пишет: В какой..
Dima пишет: цитата: | В какой операционной системе ? |
| Windows XP. А как это может повлиять?
|
|
|
|
| постоянный участник
|
Пост N: 102
Зарегистрирован: 06.02.07
|
|
Отправлено: 15.11.09 03:04. Заголовок: Аналогично Leo - оче..
Аналогично Leo - очень советую перейти на Harbour! Снимается масса "головных болей"... Консольные ("клипперные") приложения (если нет особых "извращений" со сторонними функциями или библиотеками) перекомпилируются практически "влёт"! А потом можно постепенно (сохраняя "логику и математику") переводить прогу (если надо) на "виндоузовский" интерфейс (т.е. на GUI - с окошками, кнопочками, рюшечками). Сам сейчас постепенно перегоняю старые - но до сих пор поддерживаемые нашей конторой - программы (чтобы был и привычный консольный вариант, и - кому надо - "гуёвский"). Да и нет проблем с параллельной работой "старых" клипперных программ и "новых" (вполне поддерживается модель DBFNTX - т.е. "старые" индексы не портятся). А доступных "вкусностей" сразу становится масса!.. Работа с файлами с длинными именами, работа с OLE-объектами (тот же экспорт в Word, Excel, OpenOfficeCalc, PDF... да практически хоть куда), доступ ко всем "кишкам" Винды (захотел - в реестре покопался, захотел - еще что...)... Глаза разбегаются после Клиппера :) Советую!! Я тут ("ветераны" форума, надеюсь, простят повторную рекламу) начал переводить Help от Харбора (точнее для библиотеки MiniGUI - ссылки на нее в этом форуме см. в подфоруме "GUI"). Некоторые "уроки молодого солдата" лежат тут. Гляньте, как просто делается!..
|
|
|
|
| |
Пост N: 3
Зарегистрирован: 14.11.09
|
|
Отправлено: 15.11.09 10:05. Заголовок: Спасибо большое за с..
Спасибо большое за совет, я бы с радостью....Но перейти на Harbour невозможно по "политическим" причинам... Приходится мучится с тем что есть. А есть такая задача: необходимо в программе клипперной сформировать файл с данными, в имя файла включены разные коды, дата и прочее: в итоге длина файла больше 20 символов...такой вот формат выгрузки...
|
|
|
|
| постоянный участник
|
Пост N: 178
Зарегистрирован: 27.01.07
|
|
Отправлено: 15.11.09 11:40. Заголовок: Nadya, а dblfn005.zi..
Nadya, а dblfn005.zip с Оазиса не подходит? Почему? (я не пробывал, поэтому спрашиваю).
|
|
|
|
| |
Пост N: 4
Зарегистрирован: 14.11.09
|
|
Отправлено: 15.11.09 12:05. Заголовок: Пробывала. Подключил..
Пробывала. Подключила библиотеку, программа вылетает с ошибкой в самом начале работы - при проверке наличия необходимых для работы баз и их структуры.
|
|
|
|
| постоянный участник
|
Пост N: 179
Зарегистрирован: 27.01.07
|
|
Отправлено: 15.11.09 12:13. Заголовок: Ясно. Тогда запускат..
Ясно. Тогда запускать стандартную команду ОС rename, которая будет переименовывать файл с данными в нужный формат после его формирования.
|
|
|
|
| постоянный участник
|
Пост N: 103
Зарегистрирован: 06.02.07
|
|
Отправлено: 15.11.09 12:36. Заголовок: Nadya , прочитайте (..
Nadya , прочитайте (если, конечно уже не) внимательно DBLFN.TXT Klas Engwall там пишет: цитата: | What will it work with? It'll work with any version of DOS. BUT, it will only provide long filenames when running under Windows '95. This means that it will NOT work under DOS 7.00. Nor will it work under NT 4.00 as Microsoft, in their infinite wisdom, saw fit to omit the interrupt calls, even though the OS supports VFAT... <g> |
| Т.е. (как я это понимаю) эта библиотека НЕ работает под ОСами линии "NT" (а XP, в частности, именно такая и есть - последней из "линии DOS" была 98-я). Т.ч. может быть, оно и вообще не будет работать под XP... Проверьте сперва - работает ли оно "в принципе": скомпилируйте его TEST.PRG Если работает "в принципе" - прочитайте (если уже не) в DBLFN.TXT "What still needs fixing/replacing?" (т.е. как открывать DBF-ки с длинными именами: он советует использовать ALIAS) (не знаю - не пробовал). Я пробовал ее (лет несколько назад - пока не наткнулся на Харбор, после чего эти "головняки" пропали с глаз долой) - использовал для чтения-записи в/из текстовые файлы с длинными именами. Все работало (но - повторяю - я пользовал ее под 98-й... т.ч. про XP не знаю, будет ли она там работать).
|
|
|
|
| |
Пост N: 5
Зарегистрирован: 14.11.09
|
|
Отправлено: 15.11.09 15:10. Заголовок: gustow пишет: Тогда..
gustow пишет: цитата: | Тогда запускать стандартную команду ОС rename, которая будет переименовывать файл с данными в нужный формат после его формирования. |
| Пробывала такую команду cmd.exe /c rename короткое_имя_файла длинное_имя_файла Но опять же одно дело выполнить ее в far - все нормально, а из проги - пишет, что под dos нельзя... gustow пишет: цитата: | Проверьте сперва - работает ли оно "в принципе": скомпилируйте его TEST.PRG |
| Спасибо, попробую, такая мысль не приходила в голову... А переименовать нужно txt, а не dbf, dbf все у меня с короткими именами.
|
|
|
|
|
| постоянный участник
|
Пост N: 104
Зарегистрирован: 06.02.07
|
|
Отправлено: 15.11.09 15:23. Заголовок: С "txt" вооб..
С "txt" вообще нет проблем! (с использованием этой либы). А вот если захочется базы использовать с длинными именами - тут придется репу почесать :)
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 14.11.09
|
|
Отправлено: 15.11.09 15:55. Заголовок: Вопрос в том, что де..
Вопрос в том, что делать, есть эта библиотека под XP не будет работать? (проверить могу только завтра)
|
|
|
|
| постоянный участник
|
Пост N: 180
Зарегистрирован: 27.01.07
|
|
Отправлено: 15.11.09 16:14. Заголовок: Nadya пишет: Пробыв..
Nadya пишет: цитата: | Пробывала такую команду cmd.exe /c rename короткое_имя_файла длинное_имя_файла Но опять же одно дело выполнить ее в far - все нормально, а из проги - пишет, что под dos нельзя... |
| Что "под dos нельзя"? Только что попробывал: цитата: | RUN ( "c:\windows\system32\cmd.exe /c rename a.txt ДлинноеИмя.txt" ) |
| Переименовалось успешно... :)
|
|
|
|
| постоянный участник
|
Пост N: 105
Зарегистрирован: 06.02.07
|
|
Отправлено: 15.11.09 16:47. Заголовок: Нет, ну по-всякому м..
Нет, ну по-всякому можно изгаляться :) Например, слепить Харбором консольную прожку, которая только и будет, что принимать 2 параметра (2 строки): 1) как файл зовется сейчас; 2) как надо его переименовать. Если оба параметра есть - то ищет в текущей папке (а лежат они в одной папке с "основной" прогой) этот файл и переименовывает его ( ничего не выводя на экран - "втихушку"). Если обоих (или 2-го) параметров нет или исходного файла нет - ни шиша не делает... Такую слепить - 5 минут :) А клипперовская прога будет вызывать ее как внешнее приложение (через RUN или SWAPCMD() или OVERLAY() [тоже пользую такую - см. на Оазисе либу OSLIB... шибко полезная весчь! и масенькая! только возвращать код завершения работы приложения - ERRORLEVEL - не умеет...]) - давая ей эти строки "хвостом"... Что-то типа: file1:="otchet.txt" file2:="Чаеразвесочная фабрика имени Зураба Соткилавы -- Отчет за 2-е полугодие 2009 года.txt" overlay( 'izmena.exe "' + file1 + '" "' + file2 + '"' ) ...и все дела! Если что - черкайте на рабочий мэйл: gustow (собачятина) miac.utk.ru (это Екатеринбург - т.ч. смотрите на часы :) ) Еще гляньте на интернациональной конференции comp.lang.clipper comp.lang.clipper на Google Groups - вдруг там что подходящее сыщется (с англишом, надеюсь, хотя бы как-то?.. :) ). По аналогии со старым еврейским анекдотом времен массового выезда в Израиль: "Вот вы мне хоть что про Советскую власть говорите - а на Харбор переходить надо!" :) P.S. Пока я тут литературой занимался - PSP провел успешный эксперимент :) Ну дык так вообще элементарно Ватсон!..
|
|
|
|
| Администратор
|
Пост N: 1228
Зарегистрирован: 23.05.05
|
|
Отправлено: 16.11.09 09:17. Заголовок: Nadya пишет: Вопрос..
Nadya пишет: цитата: | Вопрос в том, что делать, есть эта библиотека под XP не будет работать? (проверить могу только завтра) |
| Не будет работать эта библиотека под nt/2k/xp В этих ОС вызов 71h 21-го прерывания в vm dos не реализован, а именно эта функция обеспечивает работу с lfn
|
|
|
|
| постоянный участник
|
Пост N: 106
Зарегистрирован: 06.02.07
|
|
Отправлено: 16.11.09 13:43. Заголовок: Спасибо за подсказку..
Спасибо за подсказку, Павел. На всякий случай буду знать (хоть и не использую ее).
|
|
|
|
| постоянный участник
|
Пост N: 353
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.11.09 15:02. Заголовок: Утверждение Павла яв..
Утверждение Павла является неверным в отношении XP. На XP можно работать с длинными именами. Что касается других ОС, то я за неимением доступа не проверял.
|
|
|
|
| |
Пост N: 1323
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.11.09 15:32. Заголовок: Григорьев Владимир п..
Григорьев Владимир пишет: цитата: | Утверждение Павла является неверным в отношении XP |
| Проверял ?
|
|
|
|
| Администратор
|
Пост N: 1230
Зарегистрирован: 23.05.05
|
|
Отправлено: 19.11.09 13:30. Заголовок: Григорьев Владимир п..
Григорьев Владимир пишет: цитата: | Утверждение Павла является неверным в отношении XP. На XP можно работать с длинными именами. Что касается других ОС, то я за неимением доступа не проверял. |
| Действительно. Заглянул в ветхий завет interrupt list, и там сказано: Caldera's DR-OpenDOS 7.02+ COMMAND.COM utilizes the LFN API as soon as it detects it (mind, that LONGNAME.EXE can be dynamically loaded and unloaded at runtime). This COMMAND.COM shell also works under MS-DOS/PC DOS and in DOS boxes of Windows9x, NT, 2000, and OS/2.
|
|
|
|