Сообщение при загрузке текста командой LoadText
|
|
ponand | Дата: Понедельник, 25 Июля 2011, 19:20 | Сообщение # 1 |
Поднаторевший
Группа: Проверенные
Сообщений: 83
Репутация: 0
Награды: 0
Статус: Offline
| При загрузке содержимого текстового файла в переменную командой LoadText выскакивает сообщение "файл слишком большой, чтобы открыть"
Подскажите, как от него избавится? П.С размер файла не очень большой от 1-го до 5 мб
Сообщение отредактировал ponand - Понедельник, 25 Июля 2011, 19:32 |
|
| |
Dordex | Дата: Понедельник, 25 Июля 2011, 20:50 | Сообщение # 2 |
Необукер
Группа: Проверенные
Сообщений: 533
Репутация: 16
Награды: 9
Статус: Offline
|
Всё таки многовато будет для текста
Сообщение отредактировал Dordex - Понедельник, 25 Июля 2011, 20:51 |
|
| |
YURIY | Дата: Понедельник, 25 Июля 2011, 23:03 | Сообщение # 3 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| А что Вы потом с этим текстом делаете? Зачем он нужен в переменной?
Вечная память Андрею Сергееву!
|
|
| |
ponand | Дата: Понедельник, 25 Июля 2011, 23:51 | Сообщение # 4 |
Поднаторевший
Группа: Проверенные
Сообщений: 83
Репутация: 0
Награды: 0
Статус: Offline
| Quote (YURIY) А что Вы потом с этим текстом делаете? Зачем он нужен в переменной? проверяю наличие текста в следующей копие. если есть заменяю если нет дописываю Code SongListReset() SearchForFiles("Folder$","txt") For i=1 To CBK_NumInList LoadText("GETPATH$","<List>i") LoadText("GETSTRING$","GETPATH$") TEMPPATH$=TempFolder$+ExtractName(GETPATH$)+'.txt' FileExist("TEMPPATH$","FE") If (FE) Then LoadText("GETTEMP$","TEMPPATH$") POS=POS(GETTEMP$,GETSTRING$)<>FALSE If (POS) Then RetVal=StrToFile(TEMPPATH$,GETSTRING$,0,0) Else RetVal=StrToFile(TEMPPATH$,GETSTRING$,1,1) End Else SysCommand("CopyFile","GETPATH$,TEMPPATH$") End Next i
Сообщение отредактировал ponand - Понедельник, 25 Июля 2011, 23:53 |
|
| |
Alex3A | Дата: Вторник, 26 Июля 2011, 12:12 | Сообщение # 5 |
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
| ponand, текстовые контейнеры все же имеют какую то предельную емкость для размещения текста, и если засовывать туда сверхмерно, то текст просто обрезается. При том молча, в ммв сделали окошко с предупреждением. Ограничение на размер переменной вроде нет, вернее все же есть сколько то там гиг. Как быть? Манипулировать содержимым файла построчно. Quote (ponand) если есть заменяю если нет дописываю Зачем заменять если он уже есть? И потом, ну эт уж дело вкуса, но, имена переменных GETPATH GETSTRING не совсем удачно выбраны, префиксы GET, SET обычно используется для функций, переменным лучше давать иные имена, к примеру, newstring, newpath, oldstring, oldpath, тогда все будет гораздо понятней. Можно просто к старому файлу добавлять новые строки командой копи. Code source$='C:\add.txt' source1$='C:\old.txt' destination$='C:\rez.txt' source$='/c copy '+source$+'+'+source1$+' '+destination$ Run("<System>\cmd.exe","source$") Run("<System>\cmd.exe","/c copy C:\rez.txt C:\old.txt")
Старый файл old.txt построчно прверяется, и при надобности к нему добавляем новое содержимое add.txt, результат записывается в rez.txt, и копируется в old.txt.
Добавлено (26 Июль 2011, 12:12) ---------------------------------------------
Code source$='C:\add.txt' source1$='C:\old.txt' destination$='C:\rez.txt' Run("<System>\cmd.exe","/c del C:\rez.txt") source$='HIDE /c copy '+source$+'+'+source1$+' '+destination$ Run("<System>\cmd.exe","source$") Pause("200") Run("<System>\cmd.exe","HIDE /c copy C:\rez.txt C:\old.txt") Pause("200") Run("<System>\cmd.exe","/c del C:\rez.txt")
|
|
| |
YURIY | Дата: Вторник, 26 Июля 2011, 13:47 | Сообщение # 6 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (dgilmour) Ограничения в текстовых объектах или переменных нет, оно есть в команде LoadText, зато его нет в StrFromFile.
Вечная память Андрею Сергееву!
|
|
| |
ponand | Дата: Вторник, 26 Июля 2011, 14:31 | Сообщение # 7 |
Поднаторевший
Группа: Проверенные
Сообщений: 83
Репутация: 0
Награды: 0
Статус: Offline
| Quote (YURIY) Quote (dgilmour) Огренаничия в текстовых объектах или переменных нет, оно есть в команде LoadText, зато его нет в StrFromFile. Как раз только что опробывал, все нормально теперь. Code STRING$=StrFromFile(TEMPPATH$,1,-1) Quote (Alex3A) Зачем заменять если он уже есть? Заменяется содержимое а не сам файл Code RetVal=StrToFile(TEMPPATH$,GETSTRING$,0,0) или дописывается Code RetVal=StrToFile(TEMPPATH$,GETSTRING$,1,1) Quote (Alex3A) И потом, ну эт уж дело вкуса, но, имена переменных GETPATH GETSTRING не совсем удачно выбраны, префиксы GET, SET обычно используется для функций, переменным лучше давать иные имена, к примеру, newstring, newpath, oldstring, oldpath, тогда все будет гораздо понятней. С английским языком я на вы, и обычно все еще хуже выглядит. Code ** Папки Folder$[1]='<Embedded>\Алфавит\\' Folder$[2]='<SrcDir>\Базы_данных\\' Folder$[3]='<SrcDir>\Таблица_Рекордов\\' Folder$[4]='<Embedded>\Временные_данные\\' ** Файлы File$[1]='<Embedded>\Fishlog.ini' File$[2]='<Embedded>\Перекадировщик.exe' File$[3]='<Embedded>\Пуск.gpr' File$[4]='<Embedded>\Клик.gpr' File$[5]='<Embedded>\Копировать.vbs' А можно ли писать название переменных и объектов на русском?
|
|
| |