:: Visual Foxpro, Foxpro for DOS
Ошибка открытия таблицы как файла
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Таблица открыта shared.
Мне надо получить путь и имя базы данных.
Fopen(m.tcFileName,0) выдает ошибку
FSO.OpenTextFile(m.tcFileName) открывает нормально, но он не очень удобен, т.к я не могу перемещать указатель по файлу.
Где собака порылась?
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
DBC()?


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Dbc() ищет в уже открытой базе, а мне надо переделать: где эта база находится и как её зовут.
Причём таблица должна быть открыта, а мне надо до открытия таблицы, которая может быть открыта другим пользователем.



Исправлено 1 раз(а). Последнее : danton1973, 19.09.22 14:30
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
А FOPEN(cFileName, 10) тоже пробовал? Данные при таком режиме не буфферизируются, может и не будет ошибки.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
sphinx

Сообщений: 31166
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
oFSO = CreateObject("Scripting.FileSystemObject")
oFile = oFSO.GetFile(cFileName)
oTStream = oFile.OpenAsTextStream()
oTStream.Read("строка")
oTStream.Close


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
akvvohinc
Автор

Сообщений: 4201
Откуда: Москва
Дата регистрации: 11.11.2008
danton1973
а мне надо до открытия таблицы
Относительный путь к файлу DBC прописан в файле DBF таблицы.
А поэтому, зная путь к файлу таблицы, можно определить и путь к её контейнеру.
Загляните в DBF-файл и вы увидите то место заголовка, где этот путь прописывается, а следовательно, сможете его прочитать функциями низкого уровня (FOPEN() и т.п.)

danton1973
Fopen(m.tcFileName,0) выдает ошибку
При открытой таблице вы не сможете "залезть" внутрь dbf функциями низкого уровня.
Воспользуйтесь FILETOSTR().



Исправлено 2 раз(а). Последнее : akvvohinc, 19.09.22 16:53
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> Таблица открыта shared. Мне надо получить путь и имя базы данных.

m.f = DBF(алиас открытой_таблицы)
m.путь = JUSTPATH(m.f)
m.имя = JUSTFNAME()
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Мне надо узнать до открытия таблицы.
Из функций низкого уровня только FSO.OpenTextFile(m.tcFileName) срабатывает. Я же писал....
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я не понял вопроса, если че... "ДО открытия" (до открытия в монополии можно делать ч.х....)
- известно имя файла, например F
- надо найти имя таблицы, открытой как USE (F) ?
- найти имя .DBC, в которой состоит F


только FSO.OpenTextFile(m.tcFileName) срабатывает - что делает из задуманного?
Fopen(m.tcFileName,0) выдает ошибку - какую ?
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Таблица открыта на сети в многопользовательском режиме. Мне до её открытия надо получить имя базы данных. Fopen выдаёт -1 при любом флаге. FSO.OpenTextFile(m.tcFileName) открывает на чтение нормально, но он как и filetostr выдаёт сразу всю стрроку. Что не удобно.
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Я не понимаю.

- Мне до её открытия (имя уже известно!) надо получить имя базы данных (файла DBC ? он рядом с DBF, хардкорный FORCEEXT, или в VFP что-то есть, если стараться быть честным, типа "DBC()"... )

- Fopen (какого именно файла) выдаёт -1 при любом флаге.

> Таблица открыта на сети в многопользовательском режиме. Мне до её открытия надо получить имя базы данных.
не понятная комбинация утверждений

> FSO.OpenTextFile(m.tcFileName) открывает на чтение нормально, но он как и filetostr выдаёт сразу всю стрроку. Что не удобно.
приведи текст проги
Доб. просто слово "FSO" - о чем-то говорит, но видео не играет )



Исправлено 3 раз(а). Последнее : of63, 21.09.22 21:51
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
danton1973

Сообщений: 143
Откуда: Пермь
Дата регистрации: 10.08.2020
Файл dbc может быть в одном каталоге, а таблицы в других каталогах и подкаталогах
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
не уверен (как в случае с FPT) , но дальше ?

() эти (простые) детали устройства "фокса" не стандартны (о чем ты спросил), это мы не можем считать стандартом (наши ответы), так что, не робей )



Исправлено 1 раз(а). Последнее : of63, 21.09.22 22:41
Ratings: 0 negative/0 positive
Re: Ошибка открытия таблицы как файла
akvvohinc
Автор

Сообщений: 4201
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
FSO.OpenTextFile(m.tcFileName) открывает на чтение нормально, но он как и filetostr выдаёт сразу всю строку. Что не удобно.
OpenTextFile ничего не выдает - он просто открывает указанный файл.
А сколько байт файла вы хотите прочитать, указывается в методе Read()
filename = 'table1.dbf'
ofso = CreateObject("Scripting.FileSystemObject")
ofh = ofso.OpenTextFile(filename)
s1 = ofh.read(32)
s2 = ofh.read(32)
= ofh.Close()
CLEAR
? CAST(s1 as blob) && первые 32 байта файла в 16-ичной системе
? CAST(s2 as blob) && вторые 32 байта файла в 16-ичной системе
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 32 (Гостей: 32)

© 2000-2024 Fox Club 
Яндекс.Метрика