Страницы: 1
RSS
ошибка "error 7 out of memory"
 
задача:  
есть большое кол-во (~7000) txt файлов, нужно содержимое этих файлов, по некоторым правилам, вставить в ячейки разных книг xls. размеры файлов небольшие, max~50 kb и по отдельности файлы вставляются нормально  
при запуске программы, которая последовательно    
-открывает и считывает по строкам нужный файл,  
-записывает текст в некоторую ячейку  
-закрывает файл  
где-то на 30-40 шаге вылетает ошибка "error 7 out of memory"  
 
если кто догадывается что это и как это решить, подскажите буду очень благодарен
 
Как открываете?  
Попробуйте другим способом открывать.  
текст можно открыть так:  
Workbooks.OpenText Filename:=    
а можно и так:  
Open "TESTFILE" For Input As #1    ' Open file for input.  
Do While Not EOF(1)    ' Loop until end of file.  
   Input #1, MyString, MyNumber    ' Read data into two variables.  
   Debug.Print MyString, MyNumber    ' Print data to the Immediate window.  
Loop  
Close #1    ' Close file.
 
открываю через open "textfile" for input...  
а есть разница как открывать?  
ошибка вылетает не при открытии а при записии в очередную ячейку
 
Может забываете закрыть файл?    
 
Close #1
 
Может добавить сохранение книги куда записывается?  
 
-открывает и считывает по строкам нужный файл,  
-записывает текст в некоторую ячейку  
-закрывает файл  
-сохраняет книгу куда идёт запись
 
Может взять еще кофейной гущи для гадания?  
Или проще код посмотреть?
 
{quote}{login=Лузер™}{date=15.05.2008 02:20}{thema=}{post}Может взять еще кофейной гущи для гадания?  
Или проще код посмотреть?{/post}{/quote}  
 
....лень (copyright ЛузерТМ)
 
вот часть кода
 
зачем все эти goto ?  
 
не лучше так?  
 
root_path = ActiveWorkbook.Path & "\"  
 
str_num = 2  
 
Do While ActiveSheet.Cells(str_num, 1).Value <> ""  
   articul = ActiveSheet.Cells(str_num, 2).Value  
   If articul <> "" Then  
       If fs.FileExists(root_path & "verba_techinfo\" & articul & ".txt") Then  
               Open root_path & "verba_techinfo\" & articul & ".txt" For Input As #1  
               line_ = ""  
               Line Input #1, line_  
               Do While Not EOF(1)  
                    Line Input #1, line_  
                   ActiveSheet.Cells(str_num, 5).Value = ActiveSheet.Cells(str_num, 5).Value & line_  
               Loop  
           Close #1  
           str_num = str_num + 1  
       End If  
    End If  
Loop
 
дело в том, что это только часть кода    
на самом деле полная прога содержит доп условия которые я не стал указывать чтобы не усложнять    
 
может проблема в закачиваемом файле  
по каким причинам файл может не закачиваться?
 
{quote}{login=kv}{date=15.05.2008 03:43}{thema=}{post}дело в том, что это только часть кода    
на самом деле полная прога содержит доп условия которые я не стал указывать чтобы не усложнять    
 
может проблема в закачиваемом файле  
по каким причинам файл может не закачиваться?{/post}{/quote}  
Например, по причине нетекстовости: содержит хотя бы один нетекстовый символ
 
например?  
вообщето непохоже  
ошибка то все таки "out of memory" как будто какаое то переполнение памяти
 
---  
В приведенном коде в одну ячейку пишется содержимое всего текстового файла.  
Если размер файла больше 32767 байт, то это приведет к переполнению памяти.  
---  
ZVI
Страницы: 1
Читают тему
Наверх