powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Считывание текстового файла более 300 Мб
16 сообщений из 16, страница 1 из 1
Считывание текстового файла более 300 Мб
    #38320040
ProgramGirl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Помогите пожалуйста в решении такой проблемы, нужно считать данные с текстового файла более 300 метров. Код:
for ix = 1 to ALINE(aParse,FileToStr(tekfail))
IF AT(fam+'|Специалист по ведению архива|',AParse[m.ix])=0 then
new_str=new_str+aParse[m.ix]+CHR(13)+CHR(10)
endif

ENDFOR


не работает, т.к. функция FileToStr(tekfail)) выдает ошибку недостаточно памяти.

Код:
SET MEMOWIDTH TO 700
CREATE CURSOR Contents(Content M)
APPEND BLANK
APPEND MEMO Content FROM ALLTRIM(tekdir+'\spto\'+ALLTRIM(maskbkdox(i,1)))

FOR ix=1 TO MEMLINES(Content)
if ATLINE(fam+'|Специалист по ведению архива|', MLINE(content,ix))=0 then
res_str=''
res_str=MLINE(content,ix)+CHR(13)+CHR(10)
STRTOFILE(res_str, newfail,.T.)
endif
WAIT WINDOW 'Работаем'+tekfail nowait
endfor

работает сутками.

Помогите пожалуйста в решении проблемы
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38320067
SoftwareBoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раз всё равно читается весь файл, почему не читать его построчно (FGETS)? С каждой строкой сразу делать что нужно.
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38320166
ProgramGirl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По fgets не пробовала, но там же надо указывать сколько байтов считывать нужно. Если возможно, напишите пример кода.
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38320259
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgramGirlПо fgets не пробовала, но там же надо указывать сколько байтов считывать нужно. И Вы сие утверждение можете подтвердить цитатой из документации?
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38320274
ProgramGirl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это необязательный параметр, но как вы себе тогда представляете считывать построчно. Всё же хочется увидеть пример кода
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38320332
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgramGirlкак вы себе тогда представляете считывать построчно.Точно так же ка и Ваше
Код: sql
1.
res_str=MLINE(content,ix)+CHR(13)+CHR(10) 
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38320347
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgramGirlЭто необязательный параметр, но как вы себе тогда представляете считывать построчно. Всё же хочется увидеть пример кода

Как построчно считать файл низкого уровня
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38320353
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38321253
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
create cursor contents (f1 c(254), f2 c(254), f3 c(254), f4 c(254))
append from (m.tekfail) type SDF

* Смотрим, что получилось
select cotents
browse
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38321332
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist,

Посмотрел пример от "piva", но возник вопрос, как можно объявить в этом примере переменную "o", например для работы с Excel, писал всегда
LOCAL loexcel AS excel.APPLICATION
loexcel=CREATEOBJECT('Excel.Application')

а для работы с Scripting.FileSystemObject, как объявить переменную o
o=CreateObject("Scripting.FileSystemObject")
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38321334
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1LOCAL loexcel AS excel.APPLICATIONСтранно... Обычно при позднем связывании используется просто
Код: sql
1.
LOCAL loApp AS Object


Ваш вариант (с явным указанием типа) требует подключенной библиотеки в референсах. Хотя, ваша правда, - при этом IntelliSense хоть работает...

Scripting.FileSystemObject - это часть объектной модели Windows Scripting Host, можете подключить его.
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38321349
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что надо написать в Local для переменной o для WSH, чтоб подключался IntelliSense, и что значит(или как) подключить WSH
PS: не знаю что такое референс(это же не балет) в вашем контексте(...подключенной библиотеки в референсах)
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38321355
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
q1w1e1,
tools - intellisense manager - types - type libraries - отметить "windows script host object model"
Код: sql
1.
2.
3.
4.
LOCAL o as Scripting.FileSystemObject

o=CREATEOBJECT("Scripting.FileSystemObject")
MESSAGEBOX(o.GetDrive('C').FileSystem)
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38321376
q1w1e1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38321610
ProgramGirl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помог код предложенный piva :)

PUBLIC gnhandle
new_str=''
res_str=''
strr=''
fam=INPUTBOX('Input','Input')
tekfail=GETFILE()
newfail=ALLTRIM(tekdir+'\spto\result.txt')
o=CREATEOBJECT("Scripting.FileSystemObject")
loFile=o.GetFile(tekfail)
loTextStrem=loFile.OpenAsTextStream()
WITH loTextStrem
DO WHILE NOT .AtEndOfStream
tekline=''
tekline=.ReadLine()
if AT( ALLTRIM(fam+'|Специалист по ведению архива|'), ALLTRIM(tekline))=0 then
res_str=''
res_str=tekline+CHR(13)+CHR(10)
STRTOFILE(res_str, newfail,.T.)
endif

Enddo
.Close()
Endwith

считывает файл за пару минут)
Спасибо всем огромное!

Если можете, киньте ссылку где можно больше прочитать про функции Windows Scripting Host
...
Рейтинг: 0 / 0
Считывание текстового файла более 300 Мб
    #38321692
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgramGirlЕсли можете, киньте ссылку где можно больше прочитать про функции Windows Scripting Host

http://www.script-coding.com/WSH.html
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Считывание текстового файла более 300 Мб
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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