|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
Доброго времени суток! Помогите пожалуйста в решении такой проблемы, нужно считать данные с текстового файла более 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 работает сутками. Помогите пожалуйста в решении проблемы ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 10:46 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
Раз всё равно читается весь файл, почему не читать его построчно (FGETS)? С каждой строкой сразу делать что нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 10:59 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
По fgets не пробовала, но там же надо указывать сколько байтов считывать нужно. Если возможно, напишите пример кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 11:43 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
ProgramGirlПо fgets не пробовала, но там же надо указывать сколько байтов считывать нужно. И Вы сие утверждение можете подтвердить цитатой из документации? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 12:24 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
Это необязательный параметр, но как вы себе тогда представляете считывать построчно. Всё же хочется увидеть пример кода ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 12:29 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
ProgramGirlкак вы себе тогда представляете считывать построчно.Точно так же ка и Ваше Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 12:50 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
ProgramGirlЭто необязательный параметр, но как вы себе тогда представляете считывать построчно. Всё же хочется увидеть пример кода Как построчно считать файл низкого уровня ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 12:57 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 13:00 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2013, 22:48 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
PaulWist, Посмотрел пример от "piva", но возник вопрос, как можно объявить в этом примере переменную "o", например для работы с Excel, писал всегда LOCAL loexcel AS excel.APPLICATION loexcel=CREATEOBJECT('Excel.Application') а для работы с Scripting.FileSystemObject, как объявить переменную o o=CreateObject("Scripting.FileSystemObject") ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2013, 04:37 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
q1w1e1LOCAL loexcel AS excel.APPLICATIONСтранно... Обычно при позднем связывании используется просто Код: sql 1.
Ваш вариант (с явным указанием типа) требует подключенной библиотеки в референсах. Хотя, ваша правда, - при этом IntelliSense хоть работает... Scripting.FileSystemObject - это часть объектной модели Windows Scripting Host, можете подключить его. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2013, 05:04 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
что надо написать в Local для переменной o для WSH, чтоб подключался IntelliSense, и что значит(или как) подключить WSH PS: не знаю что такое референс(это же не балет) в вашем контексте(...подключенной библиотеки в референсах) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2013, 06:58 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
q1w1e1, tools - intellisense manager - types - type libraries - отметить "windows script host object model" Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2013, 07:19 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2013, 08:07 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
Помог код предложенный 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2013, 11:31 |
|
Считывание текстового файла более 300 Мб
|
|||
---|---|---|---|
#18+
ProgramGirlЕсли можете, киньте ссылку где можно больше прочитать про функции Windows Scripting Host http://www.script-coding.com/WSH.html ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2013, 12:11 |
|
|
start [/forum/topic.php?fid=41&msg=38320353&tid=1582976]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 154ms |
0 / 0 |