powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / проблемы с головой!!!!!!!!
18 сообщений из 18, страница 1 из 1
проблемы с головой!!!!!!!!
    #37291297
Фотография Zloi_87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, хелп!!! у меня возникла такая проблемма: имеется таблица, в поле которой находиться индивидуальный номер пациента (id) он примерно такой:АБАА199907093106080863097,578. Первые 4 буквы мне не нужны, это инициалы, а вот 5,6,7,и 8 - год рождения. Можно ли как то проигнорировать первые 4 символа, и выташить данные только для 1999 года, например???? Помогите пожалуйста кто чем может.
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37291302
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
substr()
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37291312
Фотография Zloi_87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неееееее, пробовал примерно так:
store '2001' to id;
substr (id, 5)

не идет. мож, где то туплю????
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37291383
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

a = АБАА199907093106080863097,578
b = substr(a, 5, 4)
?b
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37291389
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zloi_87неееееее, пробовал примерно так:
store '2001' to id;
substr (id, 5)

не идет. мож, где то туплю????
Тупишь, у тебя строка из 4-х символов, как думаешь что получится если ты говоришь оставить все начиная с пятого?
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37291393
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zloi_87,

Прошу прощения, не туда ответил, да еще и с ошибкой

a = "АБАА199907093106080863097,578"
b = substr(a, 5, 4)
?b
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37291427
Фотография Zloi_87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IgorNG,

не, тут проблема гораздо глубже... мне надо по этому номеру наити людей определенного года рождения, т. есть примерно так:

id
АЙАБ200708253110043034207,062
АЛАД201003313110052042791,781
САН 200908033110042836826,843
и т. д.


и вот из этих всех мне надо найти только тех, у кого 5,6,7, и 8 символы равны, например 2010.
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37291433
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zloi_87,

SELECT SUBSTR(...) as cyear ...
Какие проблемы то?
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37291439
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zloi_87и вот из этих всех мне надо найти только тех, у кого 5,6,7, и 8 символы равны, например 2010.
Код: plaintext
select ... where substr(id,  5 ,  4 ) = '2010'
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37292878
Фотография Zloi_87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Спасибо огромное!!!! наконец допер... тока чуть по другому:

USE d:\svod_st\dbf\skrin_prof.dbf EXCLUSIVE
COPY TO d:\rab\skrin_prof1.dbf WHILE substr ( Skrin_prof.id, 5, 4) = "2010"
COPY TO d:\rab\skrin_prof2.dbf WHILE substr ( Skrin_prof.id, 5, 4) = "2009"
COPY TO d:\rab\skrin_prof3.dbf WHILE substr ( Skrin_prof.id, 5, 4) = "2008"
COPY TO d:\rab\skrin_prof4.dbf WHILE substr ( Skrin_prof.id, 5, 4) = "2007"
и тд.......
и все мазя!!!!!!!!

спасибо за помощь!!!!!!!
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37292893
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zloi_87COPY TO d:\rab\skrin_prof1.dbf WHILE substr ( Skrin_prof.id, 5, 4) = "2010"А если записи не в порядке убывания пойдут?
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37293145
Фотография Zloi_87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

Чувак, а это мысль!!!! А я то думаю, какого [ez у меня по 4 - 5 записей по каждому году, а в отчете их 30-50???? Спасибо за подсказку, будем думать дальше....
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37293192
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zloi_87, да чего тут думать - трясти использовать FOR вместо WHILE надо.
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37293319
Фотография Zloi_87
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir, все так, как надо!!!!!!! рахмет тебе!!!! Тупо:
USE d:\svod_st\dbf\skrin_prof.dbf EXCLUSIVE
COPY TO d:\rab\skrin_prof1.dbf FOR substr ( Skrin_prof.id, 5, 4) = "2010"
COPY TO d:\rab\skrin_prof2.dbf FOR substr ( Skrin_prof.id, 5, 4) = "2009"
COPY TO d:\rab\skrin_prof3.dbf FOR substr ( Skrin_prof.id, 5, 4) = "2008"
и т. д.

и все как по маслу!!!!
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37296776
BestiA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
USE d:\svod_st\dbf\skrin_prof.dbf EXCLUSIVE
COPY TO d:\rab\skrin_prof1.dbf FOR VAL(substr( Skrin_prof.id, 5, 4)) <= 2010 .AND. VAL(substr( Skrin_prof.id, 5, 4)) >= 2008

А так ?
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37297217
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BestiA,

лишние операции по вычислению VAL (как бы ещё не 2 раза - врубится фоксовый оптимизатор это оптимизировать или нет?), +к тому решение вообще неверное.
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37297895
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zloi_87USE d:\svod_st\dbf\skrin_prof.dbf EXCLUSIVEА зачем делать монопольный доступ, если вы из skrin_prof потом только читаете?
То есть у вас далее по тексту есть delete и pack ?, - это вообще...

А вообще, "правильно" было бы сделать как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
n= 0 
for i= 2010  to  2007  step - 1 
	n=n+ 1 
	select * from d:\svod_st\dbf\skrin_prof.dbf ;
		where substr(id,  5 ,  4 ) == str(i, 4 ) ;
		into dbf (d:\rab\skrin_prof+ltrim(str(n)))
endfor
...
Рейтинг: 0 / 0
проблемы с головой!!!!!!!!
    #37300354
fore5ta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в дополнении к tanglir
Код: plaintext
substr()
используй
Код: plaintext
 set filter to 
, например
Код: 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.
close databases

if not file('PROBA.DBF')
  create table PROBA (ID C( 29 ))
  append blank
  replace next  1  PROBA.ID with 'АБАА199907093106080863097,578'
  append blank
  replace next  1  PROBA.ID with 'АЙАБ200708253110043034207,062'
  append blank
  replace next  1  PROBA.ID with 'АЛАД201003313110052042791,781'
  append blank
  replace next  1  PROBA.ID with 'САН 200908033110042836826,843'
  use
endif

select  0 
use proba

set filter to substr(id,  5 ,  4 ) = '2010'
*
* далее обрабатывай как тебе нужно, например
*
scan
  ? PROBA.ID
endscan
set filter to

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


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