purebasic.info

PureBasic forum
Текущее время: Ср сен 26, 2018 2:22 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Ср сен 04, 2013 4:33 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1695
Откуда: Алматы
Благодарил (а): 15 раз.
Поблагодарили: 46 раз.
Пункты репутации: 5
спасибо


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт ноя 21, 2017 4:02 pm 
Не в сети
доцент

Зарегистрирован: Вт дек 11, 2012 9:14 pm
Сообщений: 45
Благодарил (а): 19 раз.
Поблагодарили: 1 раз.
Пункты репутации: 0
Здравствуйте!

Можно ли временно отключить зарезервированные константы, ну или поменять значение одной из них?
Мне нужно #CAN = 5, а в зарезервированных #CAN = 24.
Менять название константы не хочется.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Вт ноя 21, 2017 4:29 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
Gipopotam писал(а):
Менять название константы не хочется.

:D Тяжёлый случай.
Давай я поменяю. Бесплатно.

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Ср ноя 22, 2017 5:06 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 672
Благодарил (а): 75 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
kvitaliy писал(а):
Давай я поменяю. Бесплатно.

Щедрая душа! :D


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Чт авг 16, 2018 5:27 pm 
Не в сети
док

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 166
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Пункты репутации: 0
Блин, понадобился список констант, и нигде ненайду. Понимаю что в ИДЕ есть, но там неудобен поиск, только с первой буквы. Квиталь давал прогу, ее я тут нашел у буржуев https://www.purebasic.fr/english/viewto ... 12&t=53701, но проблема в том, что непонятно делает она чегото или нет, невыводит результата(еще и приколы с вставками типа i*|!REG3XP3!> на которые пурик ругается, частенько такие вставки встречаю). При правильной инсталяции пурика прога работает, но тупо запхать результат в папку темп, это оригинально и ищи результат где хочь.

Короче немного переделал, выдает какието сообщения, их пришлось на кривом инглише писать т.к. все в дебугере знаками вопроса. Это тож решено, надо создать файл в Анси и компилятор тоже в Анси переключить, тогда все Ок, но уже нестал переделывать прогу.
Вот полностью рабочая версия и ненужно перечитывать 4 страници форума чтобы понять чего у тебя это неработает :evil: .
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
;прога работает только с АНСИ, поэтому надо переключить прогу с юникода
; все пути к компилятору должны быть только латинскими букавками, иначе неработает прога
Debug "прога работает только с АНСИ, поэтому надо переключить прогу(компилятор) с юникода"
CompilerIf #PB_Compiler_Unicode
    CompilerError "Please turn off compiler option 'Create unicode executable'"
CompilerEndIf
 
EnableExplicit
 
#Compiler = #PB_Compiler_Home+"compilers\pbcompiler.exe"
Debug #Compiler
If ReadFile(0, #Compiler)=0
    MessageRequester("Err", "not found PureBasic Compiler - 'compilers\pbcompiler.exe' ")
    End
EndIf
 
 
 
Procedure StartCompiler()
    ProcedureReturn RunProgram(#Compiler,"/STANDBY","",#PB_Program_Open|#PB_Program_Read|#PB_Program_Write|#PB_Program_Hide)
EndProcedure
 
Procedure StopCompiler(compiler)
    WriteProgramStringN(compiler, "END")
    WaitProgram(compiler,5000)
    CloseProgram(compiler)
EndProcedure
 
Procedure SendCompilerCommand(compiler,command$)
    If ProgramRunning(compiler)
        WriteProgramStringN(compiler, command$)
    EndIf
EndProcedure
 
Procedure.s GetCompilerOutput(compiler)
    If AvailableProgramOutput(compiler)
        ProcedureReturn ReadProgramString(compiler)
    EndIf
EndProcedure
 
Procedure FillList(compiler,List out.s(),space=0)
    Protected out$
    Protected space$=Space(space)
    While out$<>"OUTPUT"+#TAB$+"COMPLETE" And Left(out$,5)<>"ERROR"
        out$=GetCompilerOutput(compiler)
        If out$ And out$<>"OUTPUT"+#TAB$+"COMPLETE" And Left(out$,5)<>"ERROR" And FindString("0123456789",Mid(out$,1,1))=0
            AddElement(out())
            out()=space$+out$
        EndIf
    Wend
EndProcedure
 
Procedure FillConstantList(compiler,List out.s(),space=0)
    Protected out$
    Protected space$=Space(space)
    While out$<>"OUTPUT"+#TAB$+"COMPLETE" And Left(out$,5)<>"ERROR"
        out$=GetCompilerOutput(compiler)
        If out$<>"" And out$<>"OUTPUT"+#TAB$+"COMPLETE" And Left(out$,5)<>"ERROR" And FindString("0123456789",Mid(out$,2,1))=0
            If FindString("01",Mid(out$,1,1))
                out$ = "#"+Mid(out$,2,Len(out$)-1)
                out$ = ReplaceString(out$,#TAB$," = ")
                out$ = ReplaceString(out$,"# = ","#")
            ElseIf FindString("2",Mid(out$,1,1))
                Protected i, found_non_printable = #False
                Protected oldout$ = out$
                Protected sconst_value$  = StringField(oldout$,3,Chr(9))
                out$ = "#"+StringField(oldout$,2,#TAB$)
                For i = 1 To Len(sconst_value$)
                    If Asc(Mid(sconst_value$,i)) < 32 Or Asc(Mid(sconst_value$,i)) > 126
                        found_non_printable = #True
                    EndIf
                Next i
                If out$ = "#TAB$"
                    out$ + " = Chr(9)"
                ElseIf out$ = "#HT$"
                    out$ + " = Chr(9)"
                ElseIf out$ = "#CRLF$"
                    out$ + " = Chr(13) + Chr(10)"
                ElseIf out$ = "#LFCR$"
                    out$ + " = Chr(10) + Chr(13)"
                ElseIf out$ = "#LF$"
                    out$ + " = Chr(10)"
                ElseIf out$ = "#CR$"
                    out$ + " = Chr(13)"
                ElseIf out$ = "#DOUBLEQUOTE$"
                    out$ + " = Chr(34)"
                ElseIf out$ = "#DQUOTE$"
                    out$ + " = Chr(34)"
                ElseIf found_non_printable = #False
                    out$ + " = " + #DQUOTE$ + StringField(oldout$,3,#TAB$) + #DQUOTE$
                Else
                    out$ + " ="
                    Protected temp$ = StringField(oldout$,3,#TAB$)
                    For i = 0 To Len(sconst_value$)-1
                        out$ + " Chr("+Str(PeekB(@temp$+(SizeOf(Character)))) + ") +"
                    Next
                EndIf
                out$ = RTrim(out$,"+")
                out$ = Trim(out$)
            Else
                Debug out$
            EndIf
            out$ = Trim(out$)
            If out$
                AddElement(out())
                out()=space$+out$
            EndIf
        EndIf
    Wend
EndProcedure
 
Procedure GetStructureList(compiler,List out.s())
    If ProgramRunning(compiler)
        SendCompilerCommand(compiler,"STRUCTURELIST")
        FillList(compiler,out())
    EndIf
EndProcedure
 
Procedure GetProcedureList(compiler,List out.s())
    If ProgramRunning(compiler)
        SendCompilerCommand(compiler,"FUNCTIONLIST")
        FillList(compiler,out())
    EndIf
EndProcedure
 
Procedure GetConstantsList(compiler,List out.s())
    If ProgramRunning(compiler)
        SendCompilerCommand(compiler,"CONSTANTLIST")
        FillConstantList(compiler,out())
    EndIf
EndProcedure
 
 
Procedure GetInterfaceList(compiler,List out.s())
    If ProgramRunning(compiler)
        SendCompilerCommand(compiler,"INTERFACELIST")
        FillList(compiler,out())
    EndIf
EndProcedure
 
Procedure GetStructureInfo(compiler,struct$,List out.s())
    If ProgramRunning(compiler)
        SendCompilerCommand(compiler,"STRUCTURE"+#TAB$+struct$)
        FillList(compiler,out(),4)
    EndIf
EndProcedure
 
Procedure GetInterfaceInfo(compiler,interf$,List out.s())
    If ProgramRunning(compiler)
        SendCompilerCommand(compiler,"INTERFACE"+#TAB$+interf$)
        FillList(compiler,out(),4)
    EndIf
EndProcedure
 
 
Procedure WaitCompilerReady(compiler)
    Protected out$
    While out$<>"READY" And Left(out$,5)<>"ERROR"
        out$ = GetCompilerOutput(compiler)
        If out$
            Debug out$
        EndIf
    Wend
EndProcedure
 
Define  pb, out$
NewList constants.s()
NewList structures.s()
NewList procedures.s()
NewList interfaces.s()
 
NewList structureInfo.s()
NewList interfaceInfo.s()
 
pb = StartCompiler()
Debug "pb = StartCompiler()="+Str(pb)
If pb
    Debug "WaitCompilerReady(pb) (ожидаем запуска компилятора)"
    WaitCompilerReady(pb)
 Debug "go go, Ура запустился, короче поехали искать списки"
    GetStructureList(pb,structures())
    Debug "found "+Str(ListSize(structures()))+" structures"
 
    GetProcedureList(pb,procedures())
    Debug "found "+Str(ListSize(procedures()))+" procedures"
 
    GetConstantsList(pb,constants())
    Debug "found "+Str(ListSize(constants()))+" constants"
    SortList(constants(),#PB_Sort_Ascending|#PB_Sort_NoCase)
 
    GetInterfaceList(pb,interfaces())
    Debug "found "+Str(ListSize(interfaces()))+" interfaces"
 
    ClearList(structureInfo())
    Debug "ClearList(structureInfo())"
    ForEach structures()
        AddElement(structureInfo())
        structureInfo()="Structure "+structures()
        GetStructureInfo(pb,structures(),structureInfo())
        AddElement(structureInfo())
        structureInfo()="EndStructure"
        AddElement(structureInfo())
        structureInfo()=""
    Next
 
    ClearList(interfaceInfo())
    Debug "ClearList(interfaceInfo())"
    ForEach interfaces()
        AddElement(interfaceInfo())
        interfaceInfo()="Interface "+interfaces()
        GetInterfaceInfo(pb,interfaces(),interfaceInfo())
        AddElement(interfaceInfo())
        interfaceInfo()="EndInterface"
        AddElement(interfaceInfo())
        interfaceInfo()=""
    Next
    Debug ""
    Debug "SAVE resultat(сохраняем результаты)"
    If CreateFile(0,"c:\Structures.pb")
        Debug "create Structures.pb"
        ForEach structureInfo()
            WriteStringN(0,structureInfo())
        Next
        CloseFile(0)
    Else
        Debug "no create Structures.pb"
    EndIf
 
    If CreateFile(0,"c:\Interfaces.pb")
        Debug "create Interfaces.pb"
        ForEach interfaceInfo()
            WriteStringN(0,interfaceInfo())
        Next
        CloseFile(0)
    Else
        Debug "no create Interfaces.pb"
    EndIf
 
    If CreateFile(0,"c:\Constants.pb")
        Debug "create Constants.pb"
        ForEach constants()
            WriteStringN(0,constants())
        Next
        CloseFile(0)
    Else
        Debug "no create Constants.pb"
    EndIf
 
    If CreateFile(0,"c:\Procedures.pb")
        Debug "create Procedures.pb"
        ForEach procedures()
            WriteStringN(0,procedures())
        Next
        CloseFile(0)
    Else
        Debug "no create Procedures.pb"
           
    EndIf
 
   
    StopCompiler(pb)
    Debug "END. Shearh in directory - 'c:\'.(результат на диске 'c:\' в файлах:Structures.pb,Interfaces.pb,Constants.pb,Procedures.pb)"
Else
    Debug "No StartCompiler, Error(почемуто компилятор незапустился)"
EndIf


_________________
искатель истины


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт авг 17, 2018 10:17 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 672
Благодарил (а): 75 раз.
Поблагодарили: 20 раз.
Пункты репутации: 5
balex1978 писал(а):
;прога работает только с АНСИ, поэтому надо переключить прогу с юникода
; все пути к компилятору должны быть только латинскими букавками, иначе неработает прога
Debug "прога работает только с АНСИ, поэтому надо переключить прогу(компилятор) с юникода"
CompilerIf #PB_Compiler_Unicode
CompilerError "Please turn off compiler option 'Create unicode executable'"
CompilerEndIf

фуфло гонишь, сам себя обманываешь, людей с толку сбиваешь :D
сам файл PB, PBI... должен быть создан в утф8 и ни каких проблем
только что виндой содал два файла с русскими именами, перекодировал в utf8, и дважды запустил твою прогу
потом создал файл в иде, пурик его сохранил в utf8
ну где ты сам себе пролемы находишь?


balex1978 писал(а):
Понимаю что в ИДЕ есть, но там неудобен поиск, только с первой буквы

а ещё это фуфло не может запомнить где был, и каждый раз ждать приходится при переключении на нужную закладку
на любую букву вываливается весь список


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт авг 17, 2018 5:50 pm 
Не в сети
док

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 166
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Пункты репутации: 0
Мож и фуфло гоню но ...
Раз прога работает то мне и этого достаточно.

Ну раз ты невидиш оригинал Квитали и тут https://www.purebasic.fr/english/viewto ... 12&t=53701 трудно посмотреть, то в проге есть строка CompilerError "Please turn off compiler option 'Create unicode executable'", прога компилируется в АНСИ, о чем свидетельствует улсовие компилятора CompilerIf #PB_Compiler_Unicode, ну и у меня в юникоде неработает, возможно через старый пурик, но и в 5.56 тоже неработает.
создаю в анси прогу, компилятор в юни и получаю тескт пути к компилятору такой:
i?iaa ?aaioaao oieuei n AINE, iiyoiio iaai ia?aee??eou i?iao(eiiieeyoi?) n ?ieeiaa
D:\SA\I?IA?AIE?IAAIEA\!__PureBasic(aey caionea)\pure Basic 5.21\compilers\pbcompiler.exe

прога в УТФ, текст пути к компилятору такой:
D:\SA\\!__PureBasic( )\pure Basic 5.21\compilers\pbcompiler.exe
стравни, гдето константа #PB_Compiler_Unicode букавки подчистила
D:\SA\I?IA?AIE?IAAIEA\!__PureBasic(aey caionea)\pure Basic 5.21\compilers\pbcompiler.exe

Просто пурик у меня неинсталирован а тип переносной, вот и гонит.

чуть переделал и на пурике правильно инсталированом и ОФ-версии при файле анси в дебугере получил такой тескт(собственно неважно)( и там только юникод), зато создал списки, что радует :)
ïðîãà ðàáîòàåò òîëüêî ñ ÀÍÑÈ, ïîýòîìó íàäî ïåðåêëþ÷èòü ïðîãó(êîìïèëÿòîð) ñ þíèêîäà
C:\Program Files\PureBasic\compilers\pbcompiler.exe
pb = StartCompiler()=4138936
WaitCompilerReady(pb) (îæèäàåì çàïóñêà êîìïèëÿòîðà)
STARTING 5.62 PureBasic 5.62 (Windows - x86)
READY
go go, Óðà çàïóñòèëñÿ, êîðî÷å ïîåõàëè èñêàòü ñïèñêè
found 26 structures
found 1755 procedures
found 4457 constants
found 0 interfaces
ClearList(structureInfo())
ClearList(interfaceInfo())

SAVE resultat(ñîõðàíÿåì ðåçóëüòàòû)
create Structures.pb
create Interfaces.pb
create Constants.pb
create Procedures.pb
END. Shearh in directory - 'c:\'.(ðåçóëüòàò íà äèñêå 'c:\' â ôàéëàõ:Structures.pb,Interfaces.pb,Constants.pb,Procedures.pb)


Цитата:
только что виндой содал два файла с русскими именами, перекодировал в...
я неписал про имена файлов, а если и писал то вытру, покажи где. Я писал:
Цитата:
пути к компилятору должны быть только латинскими букавками
потому как эта "недо-константа" #PB_Compiler_Home непереваривает на моем старом пурике руские пути, в одном случае неотражает руских букв, а во втором знаки вопроса.

Цитата:
а ещё это фуфло не может запомнить где был...

А он как впервый раз, в первый клас :) , наверное каждый раз пересканирует ввесь список из пурика, память боится использовать чтоб запомнить(список занимает много гиг :lol: ).
Интересно , а кто ее сложил, может подправить, у когото код ее есть?


ПОДКОРЕКТИРОВАЛ ТАК(там неверно определял наличие пути, пытаясь открыть)
закоментировать условие компилятора и заменить эти строки(проверка правильности пути основана теперь на размере файла-минус занч ненашел чегото, другие рекомендации непрошли, может есть какието еще), обычно выскакивает сообщение когда компилятор незапустился.
Код:
1
2
3
4
5
6
7
8
9
10
11
12
; CompilerIf #PB_Compiler_Unicode
;     CompilerError "Please turn off compiler option 'Create unicode executable'"
; CompilerEndIf
 
EnableExplicit
 
#Compiler = #PB_Compiler_Home+"compilers\pbcompiler.exe"
Debug #Compiler
If FileSize(#Compiler)<0
    MessageRequester("Err", "not found PureBasic Compiler - 'compilers\pbcompiler.exe' ")
    ;End
EndIf


_________________
искатель истины


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт авг 17, 2018 6:04 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6382
Благодарил (а): 20 раз.
Поблагодарили: 198 раз.
Пункты репутации: 48
balex1978 писал(а):

Ну раз ты невидиш оригинал

Как раз в оригинале нет ограничения на использование юникода.
см. тут последний в теме код
https://www.purebasic.fr/english/viewto ... 15#p515259

_________________
read-only


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт авг 17, 2018 6:45 pm 
Не в сети
док

Зарегистрирован: Вс июл 05, 2009 5:55 pm
Сообщений: 166
Благодарил (а): 1 раз.
Поблагодарили: 7 раз.
Пункты репутации: 0
Ага, закоментировали :roll:, форум задом наперед(ошибся).

_________________
искатель истины


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 54 ]  На страницу Пред.  1, 2, 3, 4

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB