Уроки PureBasic

Categories

Other Sites

Other Sites



             Поиск по сайту

     

                


    Оставить мне сообщение:



Работа с файлами

Уроки PureBasic

Вся информация на компьютере хранится на жестком диске в виде файлов.
И если Ваша программа должна хранить какие-то данные, то не обойтись без создания файлов, записи и чтении из них информации. Следующая функция открывает файл с именем test.txt или, если такой файл не существует - создает его:

Result.l=OpenFile(#File, "test.txt")

#File - уникальный номер файла, задаем его сами (0, 1, 2 .....) и используем потом для работы с этим файлом,
если вместо уникального номера написать #PB_Any, для работы с файлом будем использовать переменную Result (если функция вернула 0 - значит файл не удалось открыть/создать).

Часто пишут так:

Result.l=OpenFile(#PB_Any, "test.txt")

Или так:

If OpenFile(0, "test.txt")
--этот код выполняется, если файл удалось открыть или создать--
EndIf

По моему мнению второй вариант предпочтительнее, так как он позволяет избежать непредсказуемых ошибок, связанных с правами доступа к каким либо файлам, папкам или дискам.

Также создать файл можно другим способом:

Result.l=CreateFile(#PB_Any, "test.txt")

CreateFile(0, "test.txt")

Аргументы этой функции полностью аналогичны.
Если Вы хотите открыть файл только для чтения:

Result.l=ReadFile(#PB_Any, "test.txt")

ReadFile(0, "test.txt")

После выполнения всех операций с файлом его обязательно надо закрыть:

CloseFile(#File)

#File - в нашем случае 0 или Result.
Если его не закрыть возможно появление непредсказуемых ошибок.

Уроки PureBasic

Загрузка изображений в память,
при компиляции файлы изображения окажутся внутри exe файла.

; Сохранение рисунка в исполняемом файле на этапе компиляции
DataSection
Im:
IncludeBinary "PB_Skin5.bmp"
ImEnd:
Im1:
IncludeBinary "x_1.bmp"
Im1End:
..............
..............
EndDataSection


; Загрузка рисунков из памяти
CatchImage(0, ?Im, ?ImEnd-?Im)
CatchImage(1, ?Im1, ?Im1End-?Im1)
CatchImage(2, ?Im2, ?Im2End-?Im2)
.........
.........

Уроки PureBasic

Загрузка звуковых файлов в память:

IB1:
IncludeBinary "son_1.ogg"
IB2:
IB3:
IncludeBinary "Son_2.ogg"
IB4:
.......................
.......................
.......................

CatchSound(0,?IB1,?IB2-?IB1)
CatchSound(0,?IB1,?IB4-?IB3 )
.....................
.....................
.....................


Уроки PureBasic

Пример кода загрузки текстового файла с возможностью его дальнейшего изменения и сохранения

Procedure OFile(file.s)
d=ReadFile(1, file)
If d
While Eof(1)=0
Text$ = Text$+ReadString(1)+Chr(13)+ Chr(10)
Wend
CloseFile(1)
SetGadgetText(62, Text$)
EndIf
EndProcedure


If ReadFile(1,"фаил.txt")
Teste$=""
Size=Lof(1)
If Size>0
Teste$=Space(Size)
ReadData(1,@Teste$,Size)
EndIf
closefile(1)
Else
MessageRequester("", "Файл не обноружен!", #MB_OK|#MB_ICONERROR)
End
EndIf


OpenWindow(0, 0, 0, 450, 280, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
StringGadget(62, 8, 8, 430, 200, "",#ES_MULTILINE )

HyperLinkGadget(6, 33, 220, 80, 15, "Загрузить", $ffffff)
HyperLinkGadget(7, 353, 220, 80, 15, "Сохранить", $ffffff)

SetGadgetText(62, Teste$)

Repeat
Event=WaitWindowEvent()
Window=EventWindow()
Gadget=EventGadget()

Select Event
Case #PB_Event_Gadget
Select EventGadget()
;..........
Case 6
   file$ = OpenFileRequester("Open File","","Все файлы|*.*",1)
   OFile(file$)

Case 7
   OpenFile(0, "файл.txt")
   FileSeek(0, 0)
   WriteStringN(0, GetGadgetText(62))
   CloseFile(0)
   MessageRequester("Ok","Файл сохранен")
;..........

EndSelect
EndSelect

If Event=#PB_Event_CloseWindow
Break
EndIf
ForEver



Уроки PureBasic


Уроки PureBasic

Открыть любой файл программой по умолчанию :

(открываемый файл должен лежать в одной директории с программой)

OpenWindow(0,0,0,220,70,"Заголовок",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)

ButtonGadget(0,80,40,65,25,"Открыть")
StringGadget(1,10,10,200,20,"файл.расширение")

Repeat
EventID = WaitWindowEvent()

Select EventID
Case #PB_Event_Gadget

Select EventGadget()
Case 0
RunProgram(GetGadgetText(1))

EndSelect
EndSelect

Until EventID = #PB_Event_CloseWindow
CloseWindow(0)
End



Уроки PureBasic


Уроки PureBasic

 

Используются технологии uCoz