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

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

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

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

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

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

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

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

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

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

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

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

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

Успехов.
...
Рейтинг: 0 / 0
Как создать курсор
    #32556106
Рам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Архив почему-то не открывается
...
Рейтинг: 0 / 0
Как создать курсор
    #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
Как создать курсор
    #32556212
lnu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для єтого я использую функции FileToStr(), GETWORDCOUNT() и GETWORDNUM()
Первой читаем файл в переменную, второй узнаем сколько у тебя разделителей, третей читаем каждое поле между разделителями...

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


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