File.s=OpenFileRequester("","","Текстовые файлы (txt)|*.txt",0)
If File<>""
If ReadFile(0, File) ; Открытие файла
Size=Lof(0) ; Определение размера файла в байтах
*mem=AllocateMemory(Size) ; Запрашиваем у ОС число байт, равное размеру файла
If *mem
ReadData(0, *mem, Size) ; Копирование данных из файла в память
CloseFile(0) ; Закрытие файла
Text.s=PeekS(*mem) ; Копируем данные из памяти в строковую переменную
FreeMemory(*mem) ; Освобождаем память
Else
MessageRequester("", "Не удалось получить запрашиваемую память")
End ; Завершение работы программы
EndIf
Else
MessageRequester("", "Не удалось открыть файл")
End ; Завершение работы программы
EndIf
EndIf
; Открываем окно
OpenWindow(1,0,0,400,400,"Работа с памятью", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(1))
EditorGadget(1,2,2,396,396) ; Создаём текстовый редактор
SetGadgetText(1,Text) ; Помещаем текст из строковой переменной в редактор
Repeat ; Главный цикл программы
Event=WaitWindowEvent() ; Получаем идентификатор события в программе
Until Event=#PB_Event_CloseWindow ; Прерываем цикл если нужно закрыть окно
строки
Else
MessageRequester("", "Не удалось открыть файл")
End ; Завершение работы программы
если нелвозможно открыть файл то вывести на экран сообщение
и выйти
можно сделать так чтобы небыло команды на выход (End)
вообщем сделать так чтобы программа не заглючила и могла дальше работать без перезагрузки
Другие языки программирования и технологии
purebasic ошибка
>>можно сделать так чтобы небыло команды на выход (End)
Убери ее из кода.
Убери ее из кода.
> ...ошибка
А где ошибка? Как программа написана, так она и работает. Невозможно открыть файл -- значит выход. Никаких ошибок нет.
> вообщем сделать так чтобы программа не заглючила
В чем глюк сейчас? Это не глюк, программа так написана.
> ..
> >>можно сделать так чтобы небыло команды на выход (End)
> Убери ее из кода.
Ну и? Появится пустое окно редактирования, которое просто бесполезно, т. к. любой введенный в него текст невозможно сохранить из самой программы. Это и будет нормальная работа программы без глюков? Короче, двоеточечник даже по своему фетишу нормальных советов дать не может, только копипаста кода из инета, да ссылки на уже готовые решения и реклама самого языка.
> вообщем сделать так чтобы программа ...могла дальше работать без перезагрузки
Сначала определись, что ты подразумеваешь под нормальной работой программы. К примеру, вместо однократной попытки открыть файл, можно организовать цикл и прерывать его только тогда, когда будет введено корректное имя файла и этот файл будет удачно открыт:
Opened = 0
While Not Opened
File.s = OpenFileRequester("", "", "Текстовые файлы (txt)|*.txt", 0)
If File<>""
If ReadFile(0, File) ; Открытие файла
Opened = 1
Size=Lof(0) ; Определение размера файла в байтах
...
...
Else
MessageRequester("", "Не удалось открыть файл")
EndIf
EndIf
Wend
...
...
А может быть "нормальное", по твоему мнению, поведение программы должно быть другим, тогда и код будет другой.
А где ошибка? Как программа написана, так она и работает. Невозможно открыть файл -- значит выход. Никаких ошибок нет.
> вообщем сделать так чтобы программа не заглючила
В чем глюк сейчас? Это не глюк, программа так написана.
> ..
> >>можно сделать так чтобы небыло команды на выход (End)
> Убери ее из кода.
Ну и? Появится пустое окно редактирования, которое просто бесполезно, т. к. любой введенный в него текст невозможно сохранить из самой программы. Это и будет нормальная работа программы без глюков? Короче, двоеточечник даже по своему фетишу нормальных советов дать не может, только копипаста кода из инета, да ссылки на уже готовые решения и реклама самого языка.
> вообщем сделать так чтобы программа ...могла дальше работать без перезагрузки
Сначала определись, что ты подразумеваешь под нормальной работой программы. К примеру, вместо однократной попытки открыть файл, можно организовать цикл и прерывать его только тогда, когда будет введено корректное имя файла и этот файл будет удачно открыт:
Opened = 0
While Not Opened
File.s = OpenFileRequester("", "", "Текстовые файлы (txt)|*.txt", 0)
If File<>""
If ReadFile(0, File) ; Открытие файла
Opened = 1
Size=Lof(0) ; Определение размера файла в байтах
...
...
Else
MessageRequester("", "Не удалось открыть файл")
EndIf
EndIf
Wend
...
...
А может быть "нормальное", по твоему мнению, поведение программы должно быть другим, тогда и код будет другой.
Похожие вопросы
- разъясните по поводу PureBasic... Я бы хотел узнать: компилятор PureBasic работает на языке visual basic или нет?
- Чем PureBasic легче и лутше С#
- Мощный и гибкий ли язык программирования PureBasic и много ли есть популярных прог на нем? К примеру как QIP на делфи
- Что можно сделать с помощью PureBasic?
- Стоит ли учить новчику PureBasic
- ошибка- 6 при установки игр
- Ошибка в папке "мои документы"
- Что означает ошибка в Паскале
- Помогите пожалуйста найти ошибку, с++
- Помогите найти ошибку Delphi легкая программка