|  |  | 
|  | 
|  | 
| - Página 1 - | 
| 
 
 | 
|  Georg
 Teles
 | | Bueno Abend, 
 nun bastel Yo a mi Cryptsystem & bajo Anderem Yo quería una Quellcode a algo Ähnlichem hier puesto y lugar fest, dass con XPSE kompilierte Programas en nativen Prozeduren con Schleifen una Valor siempre en 7 größer zurückgeben como él ser debería...
 
 hier 2 Beispiele como Fuente:
 
 con XProfan kompilierter Texto, Procedimiento son richtigen Valor zurück (55619):
 KompilierenMarcaSeparación
 Declare dat#,dat&,res&
Declare wert$
Dim dat#,8
CLS 0
Word dat#,0 = 9812,3484,60000,22315
res& = cryrst_(dat#,8)
wert$ = Str$(res&)
print wert$
Waitinput
Proc cryrst_
    Parameters ber#,ps&
    Declare s&,res&
    If ps& MOD 2 = 0
        s& = (ps&\2)-1
    Else
        s& = (ps&\2)
    EndIf
    WhileLoop 0,s&
        res& = res&+word(ber#,&loop*2)
        If res& > 20000
            res& = (res&-20000)
        Endif
    EndWhile
    res& = (res&+ps&)
    Return res&
ENDPROC
haargenau selber Code en XPSE, son el richtigen Valor el en 7 größer es (also 55626):
 KompilierenMarcaSeparación
  {$cleq}
Declarar dat#,dat&,res&
Declarar wert$
Dim dat#,8
CLS 0
Word dat#,0 = 9812,3484,60000,22315
res& = cryrst_(dat#,8)
wert$ = Str$(res&)
imprimir wert$
Waitinput
nProc cryrst_
    Parámetros ber#,ps&
    Declarar s&,res&
    If ps& MOD 2 = 0
        s& = (ps&\2)-1
    Más
        s& = (ps&\2)
    EndIf
    WhileLoop 0,s&
        res& = res&+word(ber#,&bucle*2)
        If res& > 20000
            res& = (res&-20000)
        Endif
    EndWhile
    res& = (res&+ps&)
    Volver res&
ENDPROC
hay esta una Erklärung ?
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
| « Dieser Contribución wurde como Solución gekennzeichnet. » | 
|  | 
|  | | In nProcs con declarar deklarierte Variables haben no es igual valor 0, el Variable se zwar deklariert pero se ihr kein Valor zugewiesen y Valor
 kommt entonces de el Speicher y kann cualquier ser.
 
 Anders es (natürlich) si uno innerhalb nProcs con var deklariert z.B.
 KompilierenMarcaSeparación
 oder kürzer:
 KompilierenMarcaSeparación
 | 
 | 
|  | 
|  |  | 
|  | 
|  | 
| 
 
 
 | 
|  | 
|  | | Bereichsvariablenparameter son kein nativ unterstützer Typ, übermittle veces el Adresse como Largo. (also addr(ber#) en lugar de (ber).
 
 Nach logischen Fehlern Yo beim Überfliegen no geschaut.
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  Georg
 Teles
 |  | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  Georg
 Teles
 | | Problema gelöst: 
 Yo merke, dass lo en XPSE lo muy wichtig es, definierte Variables, con denen uno arbeitet, en 0 oder una Valor a conjunto, el uno braucht...
 KompilierenMarcaSeparación
 nun liefert sowohl con XProfan kompilierte & gelinkte Ver código fuente como auch con XPSE el selben korrekten Valor
  | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  E.T.
 | | Hm, el verwundert mich doch algo: Sollten el neu declarierte Variables >Declarar c&,d& < no eigentlich en "0", d.h. leer ser ??
  
 Ach, sehe gerade:
 Im Eingans-Posting declarierst du res&  2x, una vez beim Programa-Start y luego otra vez en el Proc / nProc.
 
 En "Problem gelöst" declarierst du entonces en el "nProc-Schnipsel" c&  y b& , also neue Variables.
 Yo denke veces, en el "Doppel-Declare" liegt el Hase begraben (ungetestet).
 
 Was mich wundert es, el XProfan en deinem ersten Ejemplo en el ersten Post no meckert, el el Variable ya declariert es
  . 
 In el Ayuda es sólo a lesen
 
 
 
 Alle Variables, el en Prozeduren deklariert voluntad, son sólo hay lokal gültig. Der verwandte Speicherplatz se en Verlassen el Procedimiento otra vez freigegegen 
 Was passiert, si en el Proc Variables declariert voluntad, welche ya en el Hauptprogramm decl. fueron, el kann uns wohl Roland beantworten
  
 Frag ahora Por favor, no, por qué genau "um 7 mehr"...
 ... vlt. ha IF sí para esta Fall "Die glorreichen Sieben"  en XPSE instalado
  | 
 | 
|  | 
|  | | Grüße aus Sachsen... Mario   WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 17.09.2014  ▲ | 
 | 
|  | 
| 
 
 
 | 
|  | 
|  Georg
 Teles
 | | E.T.  (17.09.14) 
 Ach, sehe gerade:Im Eingans-Posting declarierst du res& 2x, una vez beim Programa-Start y luego otra vez en el Proc / nProc.
 ...
 Yo denke veces, en el "Doppel-Declare" liegt el Hase begraben (ungetestet).
 
 
 Negativ, habe gerade con otro Variables getestet, selbes Ergebnis, exakt en 7 größer si yo el Variables después de el Declarar no nulle
 
 möglicherweise darf no Variable 0 ser y el Declarar el "leeren Variable" valor 7 zuweist
  ? 
 E.T.  (17.09.14)
 
 Was passiert, si en el Proc Variables declariert voluntad, welche ya en el Hauptprogramm decl. fueron, el kann uns wohl Roland beantworten  
 el sería mich aber auch interés, meiner Erfahrung después de va lokal antes global, habe en media Programmen aber nie esta Fehler gemacht, sólo en Codesnippets getestet
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  RGH
 | | Wenn en uno Procedimiento Variables deklariert voluntad, el auch ya en el Hauptprogramm deklariert son, entonces son el en el Hauptprogramm deklarierten Variables en el Procedimiento no sichtbar, d.h. ellos puede en el Procedimiento weder gelesen todavía geändert voluntad. 
 Saludo
 Roland
 | 
 | 
|  | 
|  | | XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 17.09.2014  ▲ | 
 | 
|  | 
| 
 
 
 | 
|  | 
|  | | In nProcs con declarar deklarierte Variables haben no es igual valor 0, el Variable se zwar deklariert pero se ihr kein Valor zugewiesen y Valor
 kommt entonces de el Speicher y kann cualquier ser.
 
 Anders es (natürlich) si uno innerhalb nProcs con var deklariert z.B.
 KompilierenMarcaSeparación
 oder kürzer:
 KompilierenMarcaSeparación
 | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 | 
|  | 
|  Georg
 Teles
 | | Ahh, vielen Dank ! Nun son beide Fragen geklärt worden. Con el Declarar erklärt auch, dass en cada Beispielcode Ende% antes Sinestar encargado-Bucle tradiztionell con Claro gelöscht o como var ende% = 0 deklariert y a Sicherheit en 0 gesetzt se.
 Dies es seit Programmiertanfang a en me para Standard geworden porque en media Programmen oft selbe Variables mehrmals verwendet voluntad, zB. temporäre, aber genauer darauf Yo sólo todavía nie geschaut
  | 
 | 
|  | 
|  |  | 
|  | 
| 
 
 
 |