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

Откуда:
Сообщений: 173
Прошу помогите добрые люди!!! Мне нужно импортировать данные из текстового файла в FOXPRO, так как я новичок в FOXPRO, то не могу додумать эту функцию сам...
Объясняю ситуацию, даны текстовые блокноты

К сообщению приложен файл. Размер - 118Kb
4 фев 14, 12:52    [15515570]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
дана форма, к ней синтаксис кода

К сообщению приложен файл. Размер - 139Kb
4 фев 14, 12:56    [15515617]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
Я с помощью кнопки нахожу файл текстовой

К сообщению приложен файл. Размер - 98Kb
4 фев 14, 12:59    [15515649]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
Вот я нашел файл

К сообщению приложен файл. Размер - 68Kb
4 фев 14, 13:01    [15515670]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
вот этим кодом:
Local gnFileHandle,nSize,cString
gnFileHandle = FOPEN(thisform.text9.value)
nSize = FSEEK(gnFileHandle, 0, 2)
IF nSize <= 0
WAIT WINDOW "This file is empty!" NOWAIT
ELSE
= FSEEK(gnFileHandle, 0, 0)
cString = FREAD(gnFileHandle, nSize)
? cString
ENDIF
= FCLOSE(gnFileHandle)
messagebox(alltrim(cString))

он всю инфу считывает, а мне надо чтобы он только вот этот кусочек считывал, то что помечено красным, прошу помогите!!!

К сообщению приложен файл. Размер - 118Kb
4 фев 14, 13:07    [15515744]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Dima T
Member

Откуда:
Сообщений: 15296
Claymore
он всю инфу считывает, а мне надо чтобы он только вот этот кусочек считывал, то что помечено красным, прошу помогите!!!

Ну так надо проверять чего прочитал:
...
cString = FREAD(gnFileHandle, nSize)
if alltrim(cString) = 'Тип ЦП'
  ? alltrim(substr(cString, 7))
endif
...
4 фев 14, 13:13    [15515807]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
Dima T,

вот блокнот:

К сообщению приложен файл. Размер - 140Kb
4 фев 14, 13:28    [15516026]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
Dima T,

я переписал код:


Local gnFileHandle,nSize,cString
gnFileHandle = FOPEN(thisform.text9.value)
nSize = FSEEK(gnFileHandle, 0, 2)
IF nSize <= 0
WAIT WINDOW "This file is empty!" NOWAIT
ELSE
= FSEEK(gnFileHandle, 0, 0)
cString = FREAD(gnFileHandle, nSize)
if alltrim(cString) = 'Тип ЦП'
? alltrim(substr(cString, 7))
endif
ENDIF
= FCLOSE(gnFileHandle)
messagebox(alltrim(substr(cString, 7)))


но, ничего не изменилось, или я не так переписал его (?_?)

К сообщению приложен файл. Размер - 102Kb
4 фев 14, 13:30    [15516053]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Dima T
Member

Откуда:
Сообщений: 15296
Невнимательно посмотрел, ты весь файл в переменную прочитал. Читай построчно
Local gnFileHandle,nSize,cString
gnFileHandle = FOPEN(thisform.text9.value)
if gnFileHandle < 0
  ? 'Файл не открылся'
else
 do while !feof(gnFileHandle)
    cString = fgets(gnFileHandle)
    if alltrim(cString) = 'Тип ЦП'
       ? alltrim(substr(cString, 7))
       exit
    endif
 enddo
endif
= FCLOSE(gnFileHandle) 
messagebox(alltrim(cString))
4 фев 14, 13:32    [15516081]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
Dima T,

Суууупер!!! Спасибо тебе огромное, всё заработало!!!
Вот код, чуток под себя подредактировал, а то он всё равно "Тип ЦП" показывал:
Local gnFileHandle,nSize,cString
gnFileHandle = FOPEN(thisform.text9.value)
if gnFileHandle < 0
? 'Файл не открылся'
else
do while !feof(gnFileHandle)
cString = fgets(gnFileHandle)
if alltrim(cString) = 'Тип ЦП'
? alltrim(substr(alltrim(cString), 7))
exit
endif
enddo
endif
= FCLOSE(gnFileHandle)
messagebox(alltrim(substr(alltrim(cString), 7)))
4 фев 14, 13:44    [15516202]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
Dima T,

Напиши свой номер, я тебе хоть 100 руб. кину на счет, хоть как та отблагодарю)))
4 фев 14, 13:47    [15516236]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
IgorNG
Member

Откуда: Москва
Сообщений: 956
Claymore
Dima T,

Суууупер!!! Спасибо тебе огромное, всё заработало!!!
Вот код, чуток под себя подредактировал, а то он всё равно "Тип ЦП" показывал:
Local gnFileHandle,nSize,cString
gnFileHandle = FOPEN(thisform.text9.value)
if gnFileHandle < 0
? 'Файл не открылся'
else
do while !feof(gnFileHandle)
cString = fgets(gnFileHandle)
if alltrim(cString) = 'Тип ЦП'
? alltrim(substr(alltrim(cString), 7)) && SUBSTR(cExpression, nStartPosition [, nCharactersReturned])
exit
endif
enddo
endif
= FCLOSE(gnFileHandle)
messagebox(alltrim(substr(alltrim(cString), 7)))
4 фев 14, 13:53    [15516282]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Dima T
Member

Откуда:
Сообщений: 15296
Лучше книжку по фоксу себе купи и поизучай :)
Забавно смотреть на твою методику разработки в скриншотах.
4 фев 14, 14:00    [15516346]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Claymore
Member

Откуда:
Сообщений: 173
Dima T,

да она есть.......
4 фев 14, 14:03    [15516378]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Penner
Member

Откуда:
Сообщений: 340
filetostr()
alines()
for ...
next
4 фев 14, 14:04    [15516389]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
tanglir
Member

Откуда:
Сообщений: 28966
Penner
filetostr()
alines()
for ...
next
ну если памяти не жалко, то можно и так
4 фев 14, 15:59    [15517443]     Ответить | Цитировать Сообщить модератору
 Re: Импортировать данных из блокнота (дубль 2)  [new]
Penner
Member

Откуда:
Сообщений: 340
В данном случае (обработка протокола Everest) не критично
4 фев 14, 17:15    [15518093]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить