Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » Сообщение при загрузке текста командой LoadText (Инфо сообщение при загрузке командой LoadText)
Сообщение при загрузке текста командой 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
Quote (ponand)
5 мб


Всё таки многовато будет для текста :)


Сообщение отредактировал 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'

А можно ли писать название переменных и объектов на русском?
 
Форум MMB » Всё о программе Multimedia Builder » Общие вопросы по MMB » Сообщение при загрузке текста командой LoadText (Инфо сообщение при загрузке командой LoadText)
  • Страница 1 из 1
  • 1
Поиск: