powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подстрока
18 сообщений из 18, страница 1 из 1
Подстрока
    #35541050
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!
Ситуация примерно такая...
имеется несколько dbf с разными наименованиями:
11000.dbf
55123.dbf
66321.dbf

И еще одна база, которая содержит двузначный ID и наименование организаций:
ID Организация
11 "Куку"
55 "Жужу"
66 "Лала"

Нужно при выборе одной из баз вроде 11 000.dbf производить сверку, по базе с ID, первых двух символов из наименования файла dbf.

Подскажите пожалуйста, как это можно реализовать в Foxpro2.6?
...
Рейтинг: 0 / 0
Подстрока
    #35541076
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>... первых двух символов из наименования файла dbf.

lcNaimen='119084'

?Left(lcNaimen, 2)
?Substr(lcNaimen, 1, 2)



Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Подстрока
    #35541239
LUCIAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Возможно такой код поможет:
Код: plaintext
1.
2.
3.
4.
5.
FILNUM = ADIR(MAS,'D:\TTN\*.DBF')
SELE  0 
CREATE CURSOR CDBF (NDBF C( 20 ))
APPEND FROM ARRAY MAS
SELECT CDBBF.* FROM CDBBF,SP_ORG WHERE Left(NDBF, 2 )=SP_ORG.ID 
...
Рейтинг: 0 / 0
Подстрока
    #35543265
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LUCIANВозможно такой код поможет:
Код: plaintext
1.
2.
3.
4.
5.
FILNUM = ADIR(MAS,'D:\TTN\*.DBF')
SELE  0 
CREATE CURSOR CDBF (NDBF C( 20 ))
APPEND FROM ARRAY MAS
SELECT CDBBF.* FROM CDBBF,SP_ORG WHERE Left(NDBF, 2 )=SP_ORG.ID 


сложный вариант с массивом.по проще бы...:(
...
Рейтинг: 0 / 0
Подстрока
    #35543302
Niara[
сложный вариант с массивом.по проще бы...:(
Давно не писал на Фоксе. Попробую...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
function check
* Параметр  функции содержит имя открываемого файла
parameter filename
private fileid
fielid = left(alltrim(filename), 2 )

*В файле Organ.dbf содержится справка по идентификаторам
if !used('organ')
 use organ in  0  shared
endif
 select organ
* Вариант проверки №  1 
 locate for id = fileid
 if found()
   * что-то делаем
    return .t.
 else
   wait window "Такого ID не обнаружено..." nowait
   return .f.
 endif

* Вариант проверки №  2 
* select * from organ into cursor q where organ.id = fileid
* if reccount() <>  0 
* * что-то делаем
*  return .t.
* else
*    wait window "Такого ID не обнаружено..." nowait
*    return .f.
* endif

* Заканчиваем функцию
return .t.

* использование функции
* result = check("11000.dbf")
* if result
*   wait window "ID обнаружено в базе" nowait
* endif

...
Рейтинг: 0 / 0
Подстрока
    #35543398
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут все понятно :) спасибо огромное! есть только маленькое "но" - я выбираю базу с помощью
Define popup file, из разворачивающейся дирректории... не получается присвоить имя выбранной базы переменной.
...
Рейтинг: 0 / 0
Подстрока
    #35543407
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niaraтут все понятно :) спасибо огромное! есть только маленькое "но" - я выбираю базу с помощью
Define popup file, из разворачивающейся дирректории... не получается присвоить имя выбранной базы переменной.
если файл уже открыт - используй функцию DBF() для получения имени файла.
...
Рейтинг: 0 / 0
Подстрока
    #35543421
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niaraя выбираю базу с помощью Define popup file, из разворачивающейся дирректории... не получается присвоить имя выбранной базы переменной.
Есть функция PROMPT() для получения выбранного из Define popup file.

Порылся в FPD-шных исходниках, нашел такое решение:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
lcfname = ''
on key label enter do press
define popup main from  1 ,  31  to  22 ,  49  prompt file like copy\re*.rar shadow
activate popup main
on key label enter
*... далее в lcfname имя выбранного файла


procedure press
lcfname = prompt()
keyboard '{Enter}' plain
return

ЗЫ А как выбранный файл открывается если его имя неизвестно? Где-то в коде оно все равно есть.
...
Рейтинг: 0 / 0
Подстрока
    #35543473
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prompt и dbf пробовала. он "кушает" весь путь с именем вмете. а мне надо как то только имя базы. может что то не так делаю?
...
Рейтинг: 0 / 0
Подстрока
    #35543526
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niaraprompt и dbf пробовала. он "кушает" весь путь с именем вмете. а мне надо как то только имя базы. может что то не так делаю?
Выделить имя файла из строки, содержащей полный путь доступа можно при помощи функций строкового анализа. Таких как SubStr(), Right(), Rat(), at() и т.п.

Логика такая:

1. Ищем первый символ "\" начиная с правого края
2. "Откусываем" кусок строки до найденного символа - это и есть только имя файла с расширением

Программно это выглядит так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
* fileName - имя файла с полным путем доступа

* Находим положение последнего символа "\"
posNum = RAT("\", m.fileName)

* Определяем количество символов от найденного положения до конца строки
endLen = len(m.fileName) - m.posNum

* Вырезаем эти концевые символы
onlyName = right(m.fileName, m.endLen)

Переменная onlyName и будет содержать только имя файла с расширением. Если надо "откусить" еще и расширение, то аналогичным образом ищем крайний справа символ точки.

Надо искать именно справа, поскольку само имя файла может содержать точку. Но расширением считаются только концевые символы. После последней точки.
...
Рейтинг: 0 / 0
Подстрока
    #35543531
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Niaraprompt и dbf пробовала. он "кушает" весь путь с именем вмете. а мне надо как то только имя базы. может что то не так делаю?
А из полного пути имя выделить никак?
Код: plaintext
1.
lcFullPath = 'C:\WINDOWS\system32\12510866.CPX'
? substr(lcFullPath, rat('\', lcFullPath) +  1 ,  2 )
...
Рейтинг: 0 / 0
Подстрока
    #35543538
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T Niaraprompt и dbf пробовала. он "кушает" весь путь с именем вмете. а мне надо как то только имя базы. может что то не так делаю?
А из полного пути имя выделить никак?
Код: plaintext
1.
lcFullPath = 'C:\WINDOWS\system32\12510866.CPX'
? substr(lcFullPath, rat('\', lcFullPath) +  1 ,  2 )

ВО!! Спасибо :) не дошло
...
Рейтинг: 0 / 0
Подстрока
    #35543540
Niara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем огромное спасибо !!! очень помогли
...
Рейтинг: 0 / 0
Подстрока
    #35543544
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T
Код: plaintext
1.
lcFullPath = 'C:\WINDOWS\system32\12510866.CPX'

Код: plaintext
?Juststem(lcFullPath)
...
Рейтинг: 0 / 0
Подстрока
    #35543552
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NiaraПодскажите пожалуйста, как это можно реализовать в Foxpro2.6 ?

Sergey Sizov.
Код: plaintext
?Juststem(lcFullPath)


Не сработает
...
Рейтинг: 0 / 0
Подстрока
    #35543557
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima T NiaraПодскажите пожалуйста, как это можно реализовать в Foxpro2.6 ?

Sergey Sizov.
Код: plaintext
?Juststem(lcFullPath)


Не сработает
Где? Почему?
...
Рейтинг: 0 / 0
Подстрока
    #35543561
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov.Где?

Niaraв Foxpro2.6 ?
...
Рейтинг: 0 / 0
Подстрока
    #35543562
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Надо свего лишь добавить строчку
Код: plaintext
set library to fpath
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подстрока
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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