Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Помогите с логикой  [new]
Grumax_user
Member

Откуда: Россия,г. Кинешма
Сообщений: 147
Есть таблица импортированная из TXT файла...(лучше не импортируется)...передо мной встала проблемма привести данную таблицу в порядок.
Таблица OKOF.dbf выглядит примерно так:
Kod C(12) Namek C(60)
10 0000000 ¦ МАТЕРИАЛЬНЫЕ ФОНДЫ
¦
11 0000000 ¦ ЗДАНИЯ (КРОМЕ ЖИЛЫХ)
¦
11 0001000 ¦ Здания, кроме жилых, не включенные в другие
¦ группировки
¦
11 0001010 ¦ Здания производственного назначения, не
¦ включенные в другие группировки
¦
11 0001150 ¦ Здания производственных насосных и
¦ компрессорных станций, трансформаторных
¦ подстанций
¦
11 0001160 ¦ Здания производственных проходных
См. файл, если прикрепился ;-)
А надо так:
Kod C(12) Namek C(250) или Мемо
10 0000000 МАТЕРИАЛЬНЫЕ ФОНДЫ
11 0000000 ЗДАНИЯ (КРОМЕ ЖИЛЫХ)
11 0001000 Здания, кроме жилых, не включенные в другие группировки
11 0001010 Здания производственного назначения, не включенные в другие группировки
11 0001150 Здания производственных насосных и компрессорных станций, трансформаторных подстанций
11 0001160 Здания производственных проходных
ТХТ файл не исправить 300 стр. текста...организован в виде таблицы, но одному коду соответствует несколько строк
Задачка пустяковая, но слегка туплю...понедельник ;-))...по логике запоминаем kod и namek...далее skip...проверяем если SUBSTR(okof.kod,1,1) # '1' или '2' и не пустая namek, то прибавляем ее к предыдущей создавая строку...как только опадаем на строку, где okof.kod='1...' то заканчиваем складывать и делаем append в новую таблицу....по логике вроде все правильно, но кривые руки не поддаються логике....может мне поспать пойти? :-))) хелп плиззз

Я во все дела суюсь -> всесторонне разовьюсь

К сообщению приложен файл (okof.dbf - 4Kb) cкачать
30 авг 04, 15:14    [918498]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с логикой  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
CREATE TABLE Result (Kod C(12), Namek M)
select OKOF
SCAN
	IF ALLTRIM(kod)='|'
		* Продолжение предыдущей записи
		select Result
		REPLACE Namek WITH Chr(13)+chr(10)+AllTrim(okof.Namek) ADDITIVE
	ELSE
		* Новая запись
		INSERT INTO Result (kod, Namek) ;
			VALUES (ChrTran(okof.kod,"|"," "),ALLTRIM(okof.Namek))
	ENDIF
ENDSCAN
30 авг 04, 15:26    [918566]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с логикой  [new]
Grumax_user
Member

Откуда: Россия,г. Кинешма
Сообщений: 147
2 ВладимирМ

Извините что заставляю снова грузить эту страничку.
Я просто хочу сказать: "Спасибо!"
:-))

Я во все дела суюсь -> всесторонне разовьюсь
30 авг 04, 16:01    [918763]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить