B4R Question SOLVED Issue in passing string constant to sub

tigrot

Well-Known Member
Licensed User
Longtime User
Hi everybody,
I'm testing a program ported from a legacy appilcation.
I have the need to store on a SD log file 50 group of values about an instrument setting.


B4X:
mkdir:1
mkdir2:1
mkdir2:1
mkdir2:1
SD init
Anno:2018
Logouterroridate1
Anno:2018
/logmetal/segnala/18_02_09.txt
Print:COEL METALREMOTE Lungo:16
COEL METALREMOTE
leggilabel
label lunga:3
Search for:DR4=
Findstring:DR4=
Findstring1111DR4=SEGNALAZIONE ERRORI
statica.stringa:SEGNALAZIONE ERRORI
tmp2:SEGNALAZIONE ERRORI 9 2 2018
Printnocr:SEGNALAZIONE ERRORI Lungo:19
Printnocr:  Lungo:1
Printnocr:09 Lungo:2
Printnocr:- Lungo:1
Printnocr:02 Lungo:2
Printnocr:- Lungo:1
Print:18 Lungo:2
18
Printnocr:METAL DETECTOR   :  Lungo:19
Print:METAL1 Lungo:6
METAL1
Print:-------------------------------------------- Lungo:44
--------------------------------------------
Printnocr:19 Lungo:2
Printnocr:- Lungo:1
Printnocr:37 Lungo:2
Printnocr:- Lungo:1
Printnocr:10 Lungo:2
Printnocr:  Lungo:1
Print:Errore Lungo:6
Errore
Anno:2018
Anno:2018
Print:COEL METALREMOTE VER.  Lungo:22
COEL METALREMOTE VER.
leggilabel
label lunga:3
Search for:DR1=
Findstring:DR1=
Findstring1111DR1=REPORT DEL GIORNO:
statica.stringa:REPORT DEL GIORNO:
Printnocr:REPORT DEL GIORNO:  Lungo:19
Printnocr:  Lungo:1
Printnocr:Giovedì Lungo:8
Printnocr:09 Lungo:2
Printnocr:- Lungo:1
Printnocr:02 Lungo:2
Printnocr:- Lungo:1
Print:18 Lungo:2
18
Printnocr:METAL DETECTOR   :  Lungo:19
Print:METAL1 Lungo:6
METAL1
leggilabel
label lunga:3
Search for:DR2=
Findstring:DR2=
Findstring1111DR2=ORA        EVENTO
statica.stringa:ORA        EVENTO
Print:ORA        EVENTO Lungo:17
ORA        EVENTO
Print:-------------------------------------------- Lungo:44
--------------------------------------------
Printnocr:19 Lungo:2
Printnocr:: Lungo:1
Printnocr:37 Lungo:2
Printnocr:: Lungo:1
Printnocr:10 Lungo:2
Printnocr: -  Lungo:3
Print:Riga di log Lungo:11
Riga di log
Anno:2018
Print:COEL METALREMOTE Lungo:16
COEL METALREMOTE
leggilabel
label lunga:2
Search for:R1=
Findstring:R1=
Findstring1111R1=SCHEDA DI TARATURA
statica.stringa:SCHEDA DI TARATURA
Print:SCHEDA DI TARATURA Lungo:18
SCHEDA DI TARATURA
leggilabel
label lunga:3
Search for:R1A=
Findstring:R1A=
Findstring1111R1A=Generata il:
statica.stringa:Generata il:
Printnocr:Generata il: Lungo:12
Printnocr:  Lungo:1
Printnocr:09 Lungo:2
Printnocr:/ Lungo:1
Printnocr:02 Lungo:2
Printnocr:/ Lungo:1
Print:2018 Lungo:4
2018
leggilabel
label lunga:3
Search for:R1B=
Findstring:R1B=
Findstring1111R1B=Ore:
statica.stringa:Ore:
Printnocr:Ore: Lungo:4
Printnocr:  Lungo:1
Printnocr:19 Lungo:2
Printnocr:: Lungo:1
Printnocr:37 Lungo:2
Printnocr:: Lungo:1
Print:10 Lungo:2
10
Printnocr:METAL DETECTOR    :  Lungo:20
Print:METAL1 Lungo:6
METAL1
Print:-------------------------------------------- Lungo:44
--------------------------------------------
Print: Lungo:0

leggilabel
label lunga:2
Search for:R2=
Findstring:R2=
Findstring1111R2=Parametri generali:
statica.stringa:Parametri generali:
Print:Parametri generali: Lungo:19
Parametri generali:
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:2
Search for:R3=
Findstring:R3=
Findstring1111R3=Prodotto in uso           :
statica.stringa:Prodotto in uso           :
Printnocr:Prodotto in uso           : Lungo:27
Printnocr:  Lungo:1
Prima di leggiparam,P0
Print:050 Lungo:3
050
leggilabel
label lunga:3
Search for:R13=
Findstring:R13=
Findstring1111R13=Disinserita
statica.stringa:Disinserita
leggilabel
label lunga:2
Search for:R4=
Findstring:R4=
Findstring1111R4=Fotocellula               :
statica.stringa:Fotocellula               :
Printnocr:Fotocellula               : Lungo:27
Printnocr:  Lungo:1
Print:Disinserita Lungo:11
Disinserita
leggilabel
label lunga:3
Search for:R15=
Findstring:R15=
Findstring1111R15=Disinserito
statica.stringa:Disinserito
leggilabel
label lunga:2
Search for:R5=
Findstring:R5=
Findstring1111R5=Reset manuale             :
statica.stringa:Reset manuale             :
Printnocr:Reset manuale             : Lungo:27
Printnocr:  Lungo:1
Print:Disinserito Lungo:11
Disinserito
leggilabel
label lunga:2
Search for:R5=
Findstring:R5=
Findstring1111R5=Reset manuale             :
statica.stringa:Reset manuale             :
Printnocr:Reset manuale             : Lungo:27
Printnocr:  Lungo:1
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:R15=
Findstring:R15=
Findstring1111R15=Disinserito
statica.stringa:Disinserito
leggilabel
label lunga:2
Search for:R7=
Findstring:R7=
Findstring1111R7=Stop su errore            :
statica.stringa:Stop su errore            :
Printnocr:Stop su errore            : Lungo:27
Printnocr:  Lungo:1
Print:Disinserito Lungo:11
Disinserito
leggilabel
label lunga:2
Search for:R8=
Findstring:R8=
Findstring1111R8=Tempo stabilizzazione     :
statica.stringa:Tempo stabilizzazione     :
Printnocr:Tempo stabilizzazione     : Lungo:27
Printnocr:  Lungo:1
leggiparam(no, P7)
Print:180 Lungo:3
180
leggilabel
label lunga:2
Search for:R9=
Findstring:R9=
Findstring1111R9=Timeout fotocellula       :
statica.stringa:Timeout fotocellula       :
Printnocr:Timeout fotocellula       : Lungo:27
Printnocr:  Lungo:1
leggiparam(no, P8)
Print:250 Lungo:3
250
leggilabel
label lunga:3
Search for:R15=
Findstring:R15=
Findstring1111R15=Disinserito
statica.stringa:Disinserito
leggiparam(no, P9)
leggilabel
label lunga:3
Search for:R10=
Findstring:R10=
Findstring1111R10=Errore mancata espulsione :
statica.stringa:Errore mancata espulsione :
Printnocr:Errore mancata espulsione : Lungo:27
Printnocr:  Lungo:1
Print:Disinserito Lungo:11
Disinserito
leggilabel
label lunga:3
Search for:R11=
Findstring:R11=
Findstring1111R11=Tempo sincronismo contatti:
statica.stringa:Tempo sincronismo contatti:
Printnocr:Tempo sincronismo contatti: Lungo:27
Printnocr:  Lungo:1
cerca:P010
Leggiparamx trova:009
9
9
9
9
Parametro numeric:9
cerca:P010
Leggiparamx trova:009
9
9
9
9
Print:010 Lungo:3
010
Print: Lungo:0

leggilabel
label lunga:3
Search for:PP1=
Findstring:PP1=
Findstring1111PP1=Parametri prodotto :
statica.stringa:Parametri prodotto :
Printnocr:Parametri prodotto :  Lungo:21
Printnocr:  Lungo:1
Printnocr:0 Lungo:1
Printnocr:   Lungo:2
leggilabel
label lunga:3
Search for:PP2=
Findstring:PP2=
Findstring1111PP2=Nome:
statica.stringa:Nome:
Printnocr:Nome: Lungo:5
Printnocr:  Lungo:1
cerca:P024
Print:0 INATTIVO Lungo:10
0 INATTIVO
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:3
Search for:PP3=
Findstring:PP3=
Findstring1111PP3=Programma N.        :
statica.stringa:Programma N.        :
Printnocr:Programma N.        : Lungo:21
Printnocr:  Lungo:1
cerca:P015
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP4=
Findstring:PP4=
Findstring1111PP4=Sensibilità canale 1:
statica.stringa:Sensibilità canale 1:
Printnocr:Sensibilità canale 1: Lungo:22
Printnocr:  Lungo:1
cerca:P016
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP5=
Findstring:PP5=
Findstring1111PP5=Sensibilità canale 2:
statica.stringa:Sensibilità canale 2:
Printnocr:Sensibilità canale 2: Lungo:22
Printnocr:  Lungo:1
cerca:P017
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP6=
Findstring:PP6=
Findstring1111PP6=Velocità intercett. :
statica.stringa:Velocità intercett. :
Printnocr:Velocità intercett. : Lungo:22
Printnocr:  Lungo:1
cerca:P018
Printnocr:001 Lungo:3
Print:0 Lungo:1
0
leggilabel
label lunga:3
Search for:PP7=
Findstring:PP7=
Findstring1111PP7=Cadenza massima     :
statica.stringa:Cadenza massima     :
PP7:Cadenza massima     :
Printnocr:Cadenza massima     : Lungo:21
Printnocr:  Lungo:1
cerca:P019
Print:050 Lungo:3
050
Candenza massima:050
leggilabel
label lunga:3
Search for:PP8=
Findstring:PP8=
Findstring1111PP8=Ritardo espulsione  :
statica.stringa:Ritardo espulsione  :
Printnocr:Ritardo espulsione  : Lungo:21
Printnocr:  Lungo:1
cerca:P020
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP9=
Findstring:PP9=
Findstring1111PP9=Durata espulsione   :
statica.stringa:Durata espulsione   :
Printnocr:Durata espulsione   : Lungo:21
Printnocr:  Lungo:1
cerca:P021
Print:010 Lungo:3
010
Print: Lungo:0

leggilabel
label lunga:3
Search for:PP1=
Findstring:PP1=
Findstring1111PP1=Parametri prodotto :
statica.stringa:Parametri prodotto :
Printnocr:Parametri prodotto :  Lungo:21
Printnocr:  Lungo:1
Printnocr:1 Lungo:1
Printnocr:   Lungo:2
leggilabel
label lunga:3
Search for:PP2=
Findstring:PP2=
Findstring1111PP2=Nome:
statica.stringa:Nome:
Printnocr:Nome: Lungo:5
Printnocr:  Lungo:1
cerca:P034
Print:1 (NotSet) Lungo:10
1 (NotSet)
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:3
Search for:PP3=
Findstring:PP3=
Findstring1111PP3=Programma N.        :
statica.stringa:Programma N.        :
Printnocr:Programma N.        : Lungo:21
Printnocr:  Lungo:1
cerca:P025
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP4=
Findstring:PP4=
Findstring1111PP4=Sensibilità canale 1:
statica.stringa:Sensibilità canale 1:
Printnocr:Sensibilità canale 1: Lungo:22
Printnocr:  Lungo:1
cerca:P026
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP5=
Findstring:PP5=
Findstring1111PP5=Sensibilità canale 2:
statica.stringa:Sensibilità canale 2:
Printnocr:Sensibilità canale 2: Lungo:22
Printnocr:  Lungo:1
cerca:P027
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP6=
Findstring:PP6=
Findstring1111PP6=Velocità intercett. :
statica.stringa:Velocità intercett. :
Printnocr:Velocità intercett. : Lungo:22
Printnocr:  Lungo:1
cerca:P028
Printnocr:001 Lungo:3
Print:0 Lungo:1
0
leggilabel
label lunga:3
Search for:PP7=
Findstring:PP7=
Findstring1111PP7=Cadenza massima     :
statica.stringa:Cadenza massima     :
PP7:Cadenza massima     :
Printnocr:Cadenza massima     : Lungo:21
Printnocr:  Lungo:1
cerca:P029
Print:050 Lungo:3
050
Candenza massima:050
leggilabel
label lunga:3
Search for:PP8=
Findstring:PP8=
Findstring1111PP8=Ritardo espulsione  :
statica.stringa:Ritardo espulsione  :
Printnocr:Ritardo espulsione  : Lungo:21
Printnocr:  Lungo:1
cerca:P030
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP9=
Findstring:PP9=
Findstring1111PP9=Durata espulsione   :
statica.stringa:Durata espulsione   :
Printnocr:Durata espulsione   : Lungo:21
Printnocr:  Lungo:1
cerca:P031
Print:010 Lungo:3
010
Print: Lungo:0

leggilabel
label lunga:3
Search for:PP1=
Findstring:PP1=
Findstring1111PP1=Parametri prodotto :
statica.stringa:Parametri prodotto :
Printnocr:Parametri prodotto :  Lungo:21
Printnocr:  Lungo:1
Printnocr:2 Lungo:1
Printnocr:   Lungo:2
leggilabel
label lunga:3
Search for:PP2=
Findstring:PP2=
Findstring1111PP2=Nome:
statica.stringa:Nome:
Printnocr:Nome: Lungo:5
Printnocr:  Lungo:1
cerca:P044
Print:2 (NotSet) Lungo:10
2 (NotSet)
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:3
Search for:PP3=
Findstring:PP3=
Findstring1111PP3=Programma N.        :
statica.stringa:Programma N.        :
Printnocr:Programma N.        : Lungo:21
Printnocr:  Lungo:1
cerca:P035
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP4=
Findstring:PP4=
Findstring1111PP4=Sensibilità canale 1:
statica.stringa:Sensibilità canale 1:
Printnocr:Sensibilità canale 1: Lungo:22
Printnocr:  Lungo:1
cerca:P036
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP5=
Findstring:PP5=
Findstring1111PP5=Sensibilità canale 2:
statica.stringa:Sensibilità canale 2:
Printnocr:Sensibilità canale 2: Lungo:22
Printnocr:  Lungo:1
cerca:P037
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP6=
Findstring:PP6=
Findstring1111PP6=Velocità intercett. :
statica.stringa:Velocità intercett. :
Printnocr:Velocità intercett. : Lungo:22
Printnocr:  Lungo:1
cerca:P038
Printnocr:001 Lungo:3
Print:0 Lungo:1
0
leggilabel
label lunga:3
Search for:PP7=
Findstring:PP7=
Findstring1111PP7=Cadenza massima     :
statica.stringa:Cadenza massima     :
PP7:Cadenza massima     :
Printnocr:Cadenza massima     : Lungo:21
Printnocr:  Lungo:1
cerca:P039
Print:050 Lungo:3
050
Candenza massima:050
leggilabel
label lunga:3
Search for:PP8=
Findstring:PP8=
Findstring1111PP8=Ritardo espulsione  :
statica.stringa:Ritardo espulsione  :
Printnocr:Ritardo espulsione  : Lungo:21
Printnocr:  Lungo:1
cerca:P040
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP9=
Findstring:PP9=
Findstring1111PP9=Durata espulsione   :
statica.stringa:Durata espulsione   :
Printnocr:Durata espulsione   : Lungo:21
Printnocr:  Lungo:1
cerca:P041
Print:010 Lungo:3
010
Print: Lungo:0

leggilabel
label lunga:3
Search for:PP1=
Findstring:PP1=
Findstring1111PP1=Parametri prodotto :
statica.stringa:Parametri prodotto :
Printnocr:Parametri prodotto :  Lungo:21
Printnocr:  Lungo:1
Printnocr:3 Lungo:1
Printnocr:   Lungo:2
leggilabel
label lunga:3
Search for:PP2=
Findstring:PP2=
Findstring1111PP2=Nome:
statica.stringa:Nome:
Printnocr:Nome: Lungo:5
Printnocr:  Lungo:1
cerca:P054
Print:3 (NotSet3 Lungo:10
3 (NotSet3
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:3
Search for:PP3=
Findstring:PP3=
Findstring1111PP3=Programma N.        :
statica.stringa:Programma N.        :
Printnocr:Programma N.        : Lungo:21
Printnocr:  Lungo:1
cerca:P045
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP4=
Findstring:PP4=
Findstring1111PP4=Sensibilità canale 1:
statica.stringa:Sensibilità canale 1:
Printnocr:Sensibilità canale 1: Lungo:22
Printnocr:  Lungo:1
cerca:P046
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP5=
Findstring:PP5=
Findstring1111PP5=Sensibilità canale 2:
statica.stringa:Sensibilità canale 2:
Printnocr:Sensibilità canale 2: Lungo:22
Printnocr:  Lungo:1
cerca:P047
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP6=
Findstring:PP6=
Findstring1111PP6=Velocità intercett. :
statica.stringa:Velocità intercett. :
Printnocr:Velocità intercett. : Lungo:22
Printnocr:  Lungo:1
cerca:P048
Printnocr:001 Lungo:3
Print:0 Lungo:1
0
leggilabel
label lunga:3
Search for:PP7=
Findstring:PP7=
Findstring1111PP7=Cadenza massima     :
statica.stringa:Cadenza massima     :
PP7:Cadenza massima     :
Printnocr:Cadenza massima     : Lungo:21
Printnocr:  Lungo:1
cerca:P049
Print:050 Lungo:3
050
Candenza massima:050
leggilabel
label lunga:3
Search for:PP8=
Findstring:PP8=
Findstring1111PP8=Ritardo espulsione  :
statica.stringa:Ritardo espulsione  :
Printnocr:Ritardo espulsione  : Lungo:21
Printnocr:  Lungo:1
cerca:P050
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP9=
Findstring:PP9=
Findstring1111PP9=Durata espulsione   :
statica.stringa:Durata espulsione   :
Printnocr:Durata espulsione   : Lungo:21
Printnocr:  Lungo:1
cerca:P051
Print:010 Lungo:3
010
Print: Lungo:0

leggilabel
label lunga:3
Search for:PP1=
Findstring:PP1=
Findstring1111PP1=Parametri prodotto :
statica.stringa:Parametri prodotto :
Printnocr:Parametri prodotto :  Lungo:21
Printnocr:  Lungo:1
Printnocr:4 Lungo:1
Printnocr:   Lungo:2
leggilabel
label lunga:3
Search for:PP2=
Findstring:PP2=
Findstring1111PP2=Nome:
statica.stringa:Nome:
Printnocr:Nome: Lungo:5
Printnocr:  Lungo:1
cerca:P064
Print:4 (NotSeA4 Lungo:10
4 (NotSeA4
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:3
Search for:PP3=
Findstring:PP3=
Findstring1111PP3=Programma N.        :
statica.stringa:Programma N.        :
Printnocr:Programma N.        : Lungo:21
Printnocr:  Lungo:1
cerca:P055
Print:002 Lungo:3
002
leggilabel
label lunga:3
Search for:PP4=
Findstring:PP4=
Findstring1111PP4=Sensibilità canale 1:
statica.stringa:Sensibilità canale 1:
Printnocr:Sensibilità canale 1: Lungo:22
Printnocr:  Lungo:1
cerca:P056
Leggiparamx trova:097
7
97
97
97
Printnocr:3 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP5=
Findstring:PP5=
Findstring1111PP5=Sensibilità canale 2:
statica.stringa:Sensibilità canale 2:
Printnocr:Sensibilità canale 2: Lungo:22
Printnocr:  Lungo:1
cerca:P057
Leggiparamx trova:096
6
96
96
96
Printnocr:4 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP6=
Findstring:PP6=
Findstring1111PP6=Velocità intercett. :
statica.stringa:Velocità intercett. :
Printnocr:Velocità intercett. : Lungo:22
Printnocr:  Lungo:1
cerca:P058
Printnocr:003 Lungo:3
Print:0 Lungo:1
0
leggilabel
label lunga:3
Search for:PP7=
Findstring:PP7=
Findstring1111PP7=Cadenza massima     :
statica.stringa:Cadenza massima     :
PP7:Cadenza massima     :
Printnocr:Cadenza massima     : Lungo:21
Printnocr:  Lungo:1
cerca:P059
Print:052 Lungo:3
052
Candenza massima:052
leggilabel
label lunga:3
Search for:PP8=
Findstring:PP8=
Findstring1111PP8=Ritardo espulsione  :
statica.stringa:Ritardo espulsione  :
Printnocr:Ritardo espulsione  : Lungo:21
Printnocr:  Lungo:1
cerca:P060
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP9=
Findstring:PP9=
Findstring1111PP9=Durata espulsione   :
statica.stringa:Durata espulsione   :
Printnocr:Durata espulsione   : Lungo:21
Printnocr:  Lungo:1
cerca:P061
Print:010 Lungo:3
010
Print: Lungo:0

leggilabel
label lunga:3
Search for:PP1=
Findstring:PP1=
Findstring1111PP1=Parametri prodotto :
statica.stringa:Parametri prodotto :
Printnocr:Parametri prodotto :  Lungo:21
Printnocr:  Lungo:1
Printnocr:5 Lungo:1
Printnocr:   Lungo:2
leggilabel
label lunga:3
Search for:PP2=
Findstring:PP2=
Findstring1111PP2=Nome:
statica.stringa:Nome:
Printnocr:Nome: Lungo:5
Printnocr:  Lungo:1
cerca:P074
Print:5 (notSet) Lungo:10
5 (notSet)
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:3
Search for:PP3=
Findstring:PP3=
Findstring1111PP3=Programma N.        :
statica.stringa:Programma N.        :
Printnocr:Programma N.        : Lungo:21
Printnocr:  Lungo:1
cerca:P065
Print:002 Lungo:3
002
leggilabel
label lunga:3
Search for:PP4=
Findstring:PP4=
Findstring1111PP4=Sensibilità canale 1:
statica.stringa:Sensibilità canale 1:
Printnocr:Sensibilità canale 1: Lungo:22
Printnocr:  Lungo:1
cerca:P066
Leggiparamx trova:096
6
96
96
96
Printnocr:4 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP5=
Findstring:PP5=
Findstring1111PP5=Sensibilità canale 2:
statica.stringa:Sensibilità canale 2:
Printnocr:Sensibilità canale 2: Lungo:22
Printnocr:  Lungo:1
cerca:P067
Leggiparamx trova:095
5
95
95
95
Printnocr:5 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP6=
Findstring:PP6=
Findstring1111PP6=Velocità intercett. :
statica.stringa:Velocità intercett. :
Printnocr:Velocità intercett. : Lungo:22
Printnocr:  Lungo:1
cerca:P068
Printnocr:001 Lungo:3
Print:0 Lungo:1
0
leggilabel
label lunga:3
Search for:PP7=
Findstring:PP7=
Findstring1111PP7=Cadenza massima     :
statica.stringa:Cadenza massima     :
PP7:Cadenza massima     :
Printnocr:Cadenza massima     : Lungo:21
Printnocr:  Lungo:1
cerca:P069
Print:050 Lungo:3
050
Candenza massima:050
leggilabel
label lunga:3
Search for:PP8=
Findstring:PP8=
Findstring1111PP8=Ritardo espulsione  :
statica.stringa:Ritardo espulsione  :
Printnocr:Ritardo espulsione  : Lungo:21
Printnocr:  Lungo:1
cerca:P070
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP9=
Findstring:PP9=
Findstring1111PP9=Durata espulsione   :
statica.stringa:Durata espulsione   :
Printnocr:Durata espulsione   : Lungo:21
Printnocr:  Lungo:1
cerca:P071
Print:010 Lungo:3
010
Print: Lungo:0

leggilabel
label lunga:3
Search for:PP1=
Findstring:PP1=
Findstring1111PP1=Parametri prodotto :
statica.stringa:Parametri prodotto :
Printnocr:Parametri prodotto :  Lungo:21
Printnocr:  Lungo:1
Printnocr:6 Lungo:1
Printnocr:   Lungo:2
leggilabel
label lunga:3
Search for:PP2=
Findstring:PP2=
Findstring1111PP2=Nome:
statica.stringa:Nome:
Printnocr:Nome: Lungo:5
Printnocr:  Lungo:1
cerca:P084
Print:6 (NotSg12 Lungo:10
6 (NotSg12
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:3
Search for:PP3=
Findstring:PP3=
Findstring1111PP3=Programma N.        :
statica.stringa:Programma N.        :
Printnocr:Programma N.        : Lungo:21
Printnocr:  Lungo:1
cerca:P075
Print:003 Lungo:3
003
leggilabel
label lunga:3
Search for:PP4=
Findstring:PP4=
Findstring1111PP4=Sensibilità canale 1:
statica.stringa:Sensibilità canale 1:
Printnocr:Sensibilità canale 1: Lungo:22
Printnocr:  Lungo:1
cerca:P076
Leggiparamx trova:094
4
94
94
94
Printnocr:6 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP5=
Findstring:PP5=
Findstring1111PP5=Sensibilità canale 2:
statica.stringa:Sensibilità canale 2:
Printnocr:Sensibilità canale 2: Lungo:22
Printnocr:  Lungo:1
cerca:P077
Leggiparamx trova:094
4
94
94
94
Printnocr:6 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP6=
Findstring:PP6=
Findstring1111PP6=Velocità intercett. :
statica.stringa:Velocità intercett. :
Printnocr:Velocità intercett. : Lungo:22
Printnocr:  Lungo:1
cerca:P078
Printnocr:001 Lungo:3
Print:0 Lungo:1
0
leggilabel
label lunga:3
Search for:PP7=
Findstring:PP7=
Findstring1111PP7=Cadenza massima     :
statica.stringa:Cadenza massima     :
PP7:Cadenza massima     :
Printnocr:Cadenza massima     : Lungo:21
Printnocr:  Lungo:1
cerca:P079
Print:050 Lungo:3
050
Candenza massima:050
leggilabel
label lunga:3
Search for:PP8=
Findstring:PP8=
Findstring1111PP8=Ritardo espulsione  :
statica.stringa:Ritardo espulsione  :
Printnocr:Ritardo espulsione  : Lungo:21
Printnocr:  Lungo:1
cerca:P080
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP9=
Findstring:PP9=
Findstring1111PP9=Durata espulsione   :
statica.stringa:Durata espulsione   :
Printnocr:Durata espulsione   : Lungo:21
Printnocr:  Lungo:1
cerca:P081
Print:010 Lungo:3
010
Print: Lungo:0

leggilabel
label lunga:3
Search for:PP1=
Findstring:PP1=
Findstring1111PP1=Parametri prodotto :
statica.stringa:Parametri prodotto :
Printnocr:Parametri prodotto :  Lungo:21
Printnocr:  Lungo:1
Printnocr:7 Lungo:1
Printnocr:   Lungo:2
leggilabel
label lunga:3
Search for:PP2=
Findstring:PP2=
Findstring1111PP2=Nome:
statica.stringa:Nome:
Printnocr:Nome: Lungo:5
Printnocr:  Lungo:1
cerca:P094
Print:7 (NotSet) Lungo:10
7 (NotSet)
Print:-------------------------------------------- Lungo:44
--------------------------------------------
leggilabel
label lunga:3
Search for:PP3=
Findstring:PP3=
Findstring1111PP3=Programma N.        :
statica.stringa:Programma N.        :
Printnocr:Programma N.        : Lungo:21
Printnocr:  Lungo:1
cerca:P085
Print:000 Lungo:3
000
leggilabel
label lunga:3
Search for:PP4=
Findstring:PP4=
Findstring1111PP4=Sensibilità canale 1:
statica.stringa:Sensibilità canale 1:
Printnocr:Sensibilità canale 1: Lungo:22
Printnocr:  Lungo:1
cerca:P086
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP5=
Findstring:PP5=
Findstring1111PP5=Sensibilità canale 2:
statica.stringa:Sensibilità canale 2:
Printnocr:Sensibilità canale 2: Lungo:22
Printnocr:  Lungo:1
cerca:P087
Leggiparamx trova:100
0
0
100
100
Printnocr:0 Lungo:1
Print:% Lungo:1
%
leggilabel
label lunga:3
Search for:PP6=
Findstring:PP6=
Findstring1111PP6=Velocità intercett. :
statica.stringa:Velocità intercett. :
Printnocr:Velocità intercett. : Lungo:22
Printnocr:  Lungo:1
cerca:P088
Printnocr:001 Lungo:3
Print:0 Lungo:1
0
leggilabel
label lunga:3
Search for:PP7=
Findstring:PP7=
Findstring1111PP7=Cadenza massima     :
statica.stringa:Cadenza massima     :
PP7:Cadenza massima     :
Printnocr:Cadenza massima     : Lungo:21
Printnocr:  Lungo:1
cerca:P089
Print:050 Lungo:3
050
Candenza massima:050
leggilabel
label lunga:3
Search for:P[1F]s[1F]
Findstring:[1A]€
Findstring1111ß“Í·Þ·,—[0F]¶ø”Þ¿[0F]¾Í¿
statica.stringa:Þ·,—[0F]¶ø”Þ¿[0F]¾Í¿
Printnocr:Þ·,—=[00][01][1F]—[00][0E][00][0B][1F] Lungo:14
Printnocr:  Lungo:1
cerca:P090
Print:0ŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠŠ

I have noticed that the label(a constant) named PP8 is the guilty.

The fragment of code which calls:
B4X:
tmp=leggilabel("report", "PP7")
    Log("PP7:",tmp)
    printnocr (tmp  )
    printnocr( " ")
    tmp=leggiparamx("no", offset + 5)
    print(tmp ) 'Cadenza massima  
    Log("Candenza massima:",tmp)
    tmp= leggilabel("report", "PP8")   'read label with key PP8,
    printnocr (tmp )
    printnocr( " ")

The string "PP8" is passed for many times (entry following Findstring) and it always give correct returning labels. But at a certain point a strange thing is passed to the sub:
B4X:
Sub leggilabel(dummy() As Byte,srcstr() As Byte)As Byte()
    Log("leggilabel")
    Dim n As Int=srcstr.Length
    Log("label lunga:",n)
    Dim bc As ByteConverter
    Dim tmp(n+1) As Byte
    tmp(n)=61
    bc.ArrayCopy2(srcstr,0,tmp,0,n)
    Log("Search for:",tmp)
    statica.FindString(tmp)
    Log("statica.stringa:",statica.stringa)
    Return statica.stringa
End Sub


The "search for:" debug line shows the srcstr byte array passed.
It's a constant string, so I'm sure about what I pass.
Anybody knows why this? I have encreased Stack size, but no result. The error is always is the same place. I took away most of the joinstrings and joinbytes, but it doesn't help. Ram is not in shortage.

Best regards
Mauro Zanin
 
Last edited:

tigrot

Well-Known Member
Licensed User
Longtime User
I have modified leggilabel sub adding this:
B4X:
    Log("leggilabel:",srcstr)
at the first instructiom of sub.
The issue is in:
B4X:
Dim n As Int=srcstr.Length
Log("label lunga:",n)

The log while passing "PP8" writes:
B4X:
Print:050 Lungo:3
050
Candenza massima:050
leggilabel:PP8
label lunga:3009
AppStart
The length is 3009 Instead of 3. This causes the application's crash
This happens after a lot of sub calls
Regards
Mauro
 
Upvote 0

tigrot

Well-Known Member
Licensed User
Longtime User
I put apart in a separate sub the loop content. Now the app executes till the end of the parameters. Maybe the loop required more than the stackbuffersize of 2000!
Now the sd.close is executed, but an empty file is generated. There must the an explanation for this. Let me check.
 
Upvote 0

tigrot

Well-Known Member
Licensed User
Longtime User
This is what I did. Of course everytime the sub exit the local allocated stack is released.
Maybe I have not fully understood byte array usage in B4R, allocation in static memory and stack and other basic concepts also in interfacing C.
Can you point something to make me understand? Thank you!
Best regards
Mauro Zanin
 
Upvote 0

tigrot

Well-Known Member
Licensed User
Longtime User
I divided the loop in 3 subs, but had to encrease stack to 2000. I don't know where I use so much memory. At least in "C" I have control on allocation. Is there a way to check where the allocation is? Every loop should allocate a few bytes and release every sub termination... Using 1000 bytes of stack crashes micro.
A total of 48Kb are written for each parameters' report.
Regards
Mauro
 
Upvote 0

tigrot

Well-Known Member
Licensed User
Longtime User
The line in compiler log:(Italian...)
Le variabili globali usano 3296 byte (40%) di memoria dinamica, lasciando altri 4896 byte liberi per le variabili locali. Il massimo è 8192 byte.
states that I can use 4896(theoretically) for stack? Is heap used in B4R?
Grazie for you great support!
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Upvote 0
Top