purebasic.info
http://purebasic.info/phpBB3ex/

IncludeBinary и строка
http://purebasic.info/phpBB3ex/viewtopic.php?f=1&t=4848
Страница 1 из 1

Автор:  Pypsikan [ Ср мар 07, 2018 4:21 am ]
Заголовок сообщения:  IncludeBinary и строка

Ошибка: Только строку можно использовать после 'IncludeBinary'.
Код:
1
2
3
a.l=0
strings$=Chr('d'+a)Chr('a'+a)Chr('.'+a)Chr('p'+a)Chr('n'+a)Chr('g'+a)
FileInstall(strings$, _WorkingDir() + "\" + strings$)



Битый час ломаю голову, не могу передать переменную стрингс в функцию.

Библиотека: http://www.purebasic.fr/english/viewtop ... 14&t=66067

Из библиотеки:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Macro FileInstall(source, dest, overwrite = 0)
      DataSection
        FILEINSTALL_BEGIN#MacroExpandedCount:
          IncludeBinary source
        FILEINSTALL_END#MacroExpandedCount:
      EndDataSection
 
      If Not PathFileExists_(dest) Or overwrite
        __file.i = CreateFile(#PB_Any, dest)
        If __file
          WriteData(__file, ?FILEINSTALL_BEGIN#MacroExpandedCount, ?FILEINSTALL_END#MacroExpandedCount - ?FILEINSTALL_BEGIN#MacroExpandedCount)
          CloseFile(__file)
        EndIf
      EndIf
    EndMacro


Автор:  Пётр [ Ср мар 07, 2018 1:24 pm ]
Заголовок сообщения:  Re: IncludeBinary и строка

IncludeBinary требует константную строку, потому что выполняется при компиляции и в этот момент содержимое strings$ неизвестно.

Автор:  Pypsikan [ Ср мар 07, 2018 10:30 pm ]
Заголовок сообщения:  Re: IncludeBinary и строка

Пётр писал(а):
IncludeBinary требует константную строку, потому что выполняется при компиляции и в этот момент содержимое strings$ неизвестно.


Все равно не понятно, как сделать чтобы он съел? ее.

Автор:  SereZa [ Чт мар 08, 2018 2:19 am ]
Заголовок сообщения:  Re: IncludeBinary и строка

я видимо чего-то не понимаю - но зачем название такое замудренное?
FILEINSTALL_BEGIN#MacroExpandedCount

просто FILEINSTALL_BEGIN нельзя? без этой второй части #MacroExpandedCount

Автор:  Kuzmat [ Чт мар 08, 2018 2:50 am ]
Заголовок сообщения:  Re: IncludeBinary и строка

#MacroExpandedCount - генерирует новый номер, и получается уникальное имя метки при многократном использовании.

Автор:  SereZa [ Чт мар 08, 2018 5:01 am ]
Заголовок сообщения:  Re: IncludeBinary и строка

и все равно замудрёно как-то :) это получается ехе файл сам в себя временный файл пишет, а потом когда надо из себя создает копию файла в туда куда надо?

Macro FileInstall(source.s, dest, overwrite = 0)

а вот так если? само source - это надеюсь путь до файла? то есть строка? по идее и dest тоже должен быть с .s или dest$

а если это указатель на память - то думаю через метку не прокатит. указатель сам и есть метка - сразу с ним и работай, без этих танцев с бубном через IncludeBinary.

Автор:  Pypsikan [ Чт мар 08, 2018 7:12 am ]
Заголовок сообщения:  Re: IncludeBinary и строка

SereZa писал(а):
и все равно замудрёно как-то :) это получается ехе файл сам в себя временный файл пишет, а потом когда надо из себя создает копию файла в туда куда надо?

Macro FileInstall(source.s, dest, overwrite = 0)

а вот так если? само source - это надеюсь путь до файла? то есть строка? по идее и dest тоже должен быть с .s или dest$

а если это указатель на память - то думаю через метку не прокатит. указатель сам и есть метка - сразу с ним и работай, без этих танцев с бубном через IncludeBinary.


Хотел цикл сделать, и запихнуть все через цикл, чтобы не делать вот так
FileInstal("file.png", ...)
FileInstal("file2.png", ...)
FileInstal("file4.png", ...)
FileInstal("file3.png", ...)

source.s так же не работает.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/