Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как создать курсор / 12 сообщений из 12, страница 1 из 1
10.06.2004, 08:20
    #32555415
РАМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
Подскажите пожалуйста как создать курсор из данных текстовой строки.
Имеется текстовый файл а.тхт со следующими строками

/a1=222/a2=444/a3=ffff222/a4=4444/...и так далее
Надо создать курсор из этих данных

Заранее благодарю

Рам
...
Рейтинг: 0 / 0
10.06.2004, 09:29
    #32555515
SAM-FoxPro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
Т.е., '/' -это разделитель, а1, а2, ... an- имена будущих полей курсора?
...
Рейтинг: 0 / 0
10.06.2004, 09:31
    #32555521
РАМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
'/'-разделитель
а1,а2....имена полей
Сама строка начинается с разделителя и кончается им
...
Рейтинг: 0 / 0
10.06.2004, 09:38
    #32555535
SAM-FoxPro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
Например, можно так:
1. Принимаем тексовый файл в двухмерный массив, в первом элементе к-рого будет храниться имя поля, а во вторм - данные.
2. Создаем курсор командой CREATE CURSOR
3. Наполняем его данными из массива.

(Или нужен код реализации этого алгоритма?)
...
Рейтинг: 0 / 0
10.06.2004, 09:40
    #32555538
РАМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
Если можно хотелось бы посмотреть код
...
Рейтинг: 0 / 0
10.06.2004, 09:43
    #32555545
SAM-FoxPro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
Чуть позже, занят щас...
Или Европа на работу придет, мужики помогут :-))
...
Рейтинг: 0 / 0
10.06.2004, 10:22
    #32555628
Как создать курсор
to PAM

Наводящие вопросы:

1. Текстовый файл есть набор строк, подготовленный в каком-то текстовом редакторе в формате ASCII? Т.е. это одна длинная строка или строки, ограниченные символами перевода строки?
2. В каждой строке перечислено одинаковое или разное число полей?
3. Версия фокса.
...
Рейтинг: 0 / 0
10.06.2004, 12:13
    #32555933
РАМ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
1. Текстовый файл есть набор строк, подготовленный в каком-то текстовом редакторе в формате ASCII? Т.е. это одна длинная строка или строки, ограниченные символами перевода строки?

Это длинная строка переменной длины

2. В каждой строке перечислено одинаковое или разное число полей?

В каждой строке возможно разное число полей

3. Версия фокса

VFP 8
...
Рейтинг: 0 / 0
10.06.2004, 12:32
    #32555981
SAM-FoxPro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
To PAM

В прицепе код. Он, конечно, не универсален и не учитывает доп. условий, о к-рых спрашивает Вячеслав, но идея должна быть понятна.

Успехов.
...
Рейтинг: 0 / 0
10.06.2004, 13:15
    #32556106
Рам
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
Архив почему-то не открывается
...
Рейтинг: 0 / 0
10.06.2004, 13:42
    #32556187
SAM-FoxPro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
Вот еще раз самораспак + код (на всякий случай)

Код: 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.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
LOCAL lc_PathL,ln_File,lc_String,ln_Dim, lc_StringCursor, lc_Tmp1,ln_Tmp2,ln_Tmp3,ln_Tmp4,lc_Field,lc_Count,;
	lc_InsertCursor, lc_InsertCursorValue,lc_Tmp2
STORE '' TO lc_StringCursor,lc_InsertCursor, lc_InsertCursorValue

lc_PathL=SYS( 5 )+SYS( 2003 )
SET DEFAULT TO &lc_PathL

ln_File=FOPEN('Text.txt')

IF ln_File=- 1 
	WAIT WINDOW 'Не удалось открыть файл!'
ELSE 
	lc_String=FGETS(ln_File)
	FOR i= 1  TO  100 
		ln_Dim=AT('/',lc_String,i)	
		IF ln_Dim= 0 
			EXIT 
		ENDIF
	ENDFOR 
ENDIF 

ln_Dim=i- 2 
DIMENSION MyArray(ln_Dim, 2 )
FOR i= 1  TO ln_Dim
	lc_Tmp='a'+ALLTRIM(STR(i, 5 , 0 ))+' '+'c(10)'
	lc_Tmp1='a'+ALLTRIM(STR(i, 5 , 0 ))+' '
	lc_StringCursor=lc_StringCursor+IIF(EMPTY(lc_StringCursor),lc_Tmp,','+lc_Tmp)
	lc_InsertCursor=lc_InsertCursor+IIF(EMPTY(lc_InsertCursor),lc_Tmp1,','+lc_Tmp1)
ENDFOR 
lc_StringCursor='('+lc_StringCursor+')'
lc_InsertCursor='('+lc_InsertCursor+')'
CREATE CURSOR MyCursor &lc_StringCursor
FCLOSE(ln_File)

ln_File=FOPEN('Text.txt')

IF ln_File=- 1 
	WAIT WINDOW 'Не удалось открыть файл!'
ELSE 
	DO WHILE !FEOF(ln_File)
	lc_String=FGETS(ln_File)
	FOR i= 1  TO ln_Dim
		ln_tmp2=AT('/',lc_String,i)	
		ln_Tmp3=AT('/',lc_String,i+ 1 )
		lc_Tmp1=RIGHT(LEFT(lc_String,ln_Tmp3- 1 ),ln_Tmp3-ln_Tmp2- 1 )
		ln_Tmp2=AT('=',lc_Tmp1)
		lc_Field=LEFT(lc_Tmp1,ln_Tmp2- 1 )
		lc_Count=SUBSTR(lc_Tmp1,ln_Tmp2+ 1 )
		MyArray(i, 1 )=lc_Tmp1
		MyArray(i, 2 )=lc_Count
		lc_Tmp2='MyArray('+ALLTRIM(STR(i, 5 , 0 ))+',2)'
		lc_InsertCursorValue=lc_InsertCursorValue+IIF(EMPTY(lc_InsertCursorValue),lc_Tmp2,','+lc_Tmp2)
	ENDFOR 
		lc_InsertCursorValue='('+lc_InsertCursorValue+')'
		INSERT INTO MyCursor &lc_InsertCursor VALUES &lc_InsertCursorValue
	
		lc_InsertCursorValue=''

	ENDDO 
ENDIF 


FCLOSE(ln_File)
BROWSE 	
...
Рейтинг: 0 / 0
10.06.2004, 13:56
    #32556212
lnu
lnu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как создать курсор
Для єтого я использую функции FileToStr(), GETWORDCOUNT() и GETWORDNUM()
Первой читаем файл в переменную, второй узнаем сколько у тебя разделителей, третей читаем каждое поле между разделителями...

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


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