mario23477 Inserito: 5 novembre 2007 Segnala Inserito: 5 novembre 2007 Ragazzi volevo chiedere come si gestisce un puntatore in SCL, cioè qual'è la sintassi giusta per dichiarare e inizializzare sia l'indirizzo che il valore del puntatore stesso.Grazie a tutti.....
Zulio Inserita: 6 novembre 2007 Segnala Inserita: 6 novembre 2007 Ciao,se solo per verificare come scriverlo prendi uno già fatto in step7 o crealo.Poi apri o salva il sw di partenza e usa la funzione "genera sorgente" La sintassi deve essere la stessa.SalutiRomano
Gianmario Pedrani Inserita: 7 novembre 2007 Segnala Inserita: 7 novembre 2007 Non credo che sia la stessa sintassi, in quanto scl è un linguaggio ad alto livello, molto simile al pascal, quindi credo, ma devo ferificare il manuale che la gestione dei puntatori sia simile al pascal, se comunque hai installato scl troverai una guida in formato pdf dove ti spiega come utilizzarli ciao
Savino Inserita: 7 novembre 2007 Segnala Inserita: 7 novembre 2007 Non credo che sia la stessa sintassi sono d'accordo!ma devo ferificare il manuale che la gestione dei puntatori sia simile al pascal, Dunque, per quanto ne so, gli statements sotto indicati usati in Pascal, non sono ammessi in SCLvar i: integer; p: ^integer; begin p := [at]i; p^ := 2; end.L'uso del tipo data POINTER verrebbe accettato solo come parametro di dichiarazione I/O per passaggi di indirizzi nei richiami blocchi.Se guardi sull' HTML di aiuto allegato al SCL, potresti capire qualcosa...Comunque secondo me, l'AWL resta un valitissimo linguaggio di programmazione per l'utilizzo dei puntatori.
walterword Inserita: 7 novembre 2007 Segnala Inserita: 7 novembre 2007 no .In scl i puntatori sono intrinseci negli indici degli array , semplici o strutture di arrayPer fare cio devi dichiarare i sombolici delle strutture indicizzate Piccola funzione che uso per spostare dati in un tracking FUNCTION FC13: INTVAR_INPUT END_VARVAR_IN_OUT END_VARVAR_OUTPUT END_VARVAR_TEMP ind:INT;END_VAR BEGIN DB_TRACK.DATA[35]:= DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded]; DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded].LENGHT:=0.0; DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded].WEIGHT:=0.0; DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded].DIAMETER:=0.0; DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded].REAL1:=0.0; DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded].REAL2:=0.0; DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded].INT1:=0; DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded].INT2:=0; DB_TRACK.DATA[30 - DB_CONV_8.Reels_Loaded].BARCODE:=' '; ; FC13 := 1;END_FUNCTION
Savino Inserita: 7 novembre 2007 Segnala Inserita: 7 novembre 2007 no .In scl i puntatori sono intrinseci negli indici degli arrayBeh, un indirizzamento indiretto attraverso una "variabile puntatore" non e' la stessa cosa che un indirizzamento indiretto attraverso l'indici. Forse Io non avevo capito bene la domanda. Comunque, per me un puntatore e ben un'altra cosa.
walterword Inserita: 7 novembre 2007 Segnala Inserita: 7 novembre 2007 scl accetta anceh tipi di dati ANY e pointer .E' chiaro che il concetto e' una cosa , il codice un altro
beppeconti Inserita: 8 novembre 2007 Segnala Inserita: 8 novembre 2007 (modificato) In SCL puoi utilizzare anche i seguenti modi di indirizzamento indiretto:"DBDatiSup".dw[indWord]in cui "DBDatiSup" è il nome simbolico della DB"IndWord" è l'indirizzo della word nella DB (formato INT)oppure"DBDatiSup".dx[indByte,IndBit]in cui "DBDatiSup" è il nome simbolico della DB"IndByte" è l'indirizzo del byte nella DB (formato INT)"IndBit" è l'indirizzo del bit nella DB (formato INT)oppureWORD_TO_BLOCK_DB(IndDB).dbx18.0in cui "IndDB" è l'indirizzo della DB (formato WORD)oppure pui mischiare le cose WORD_TO_BLOCK_DB(IndDB).dw[indWord]in cui "IndDB" è l'indirizzo della DB (formato WORD)"IndWord" è l'indirizzo della word nella DB (formato INT)CIAoBeppe Modificato: 8 novembre 2007 da beppeconti
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora