masmil1988 Pubblicato: 28 Settembre 2006 Segnalazione Share Pubblicato: 28 Settembre 2006 (modificato) GUIDA ALLO SVILUPPO DI APPLICAZIONI La seguente guida è ancora da completare, vuole essere soltanto una spinta per chi vorrebbe iniziare ma si scoraggia già all'inizio. Chi volesse collaborare scrivendo spiegazioni su come compiere determinate operazioni può farlo, servirà d'aiuto per tutti coloro che vogliono programmare utilizzando questo linguaggio. Hanno collaborato: Mauro90 nokiomane xMetallicax ultimo aggiornamento: 11/06/2009, - Attesa per il tocco dello schermo e estrazione delle coordinate del tocco _________________________________________________ Nel tutorial, allo stato attuale, sono trattati i seguenti argomenti (oltre alle funzioni di base): Aggiunta di un testo a un file IO Acquisire immagini dalla fotocamera CAM Apertura di un archivio .zip ZIP Apertura di un file IO Apertura di un'immagine GRAPH Aprire un'applicazione/file APP Attendere per la ricezione di un sms SMS Attesa per il tocco dello schermo e estrazione delle coordinate del tocco UI Attesa per la pressione di un tasto, riconoscimento del tasto premuto UI Cambiare colore di riempimento GRAPH Cambiare colore di scrittura GRAPH Cambiare o ottenere il font utilizzato nel modulo graph GRAPH Chiudere l'applicazione corrente PROC Concatenare due o più array ARRAY Connettersi a un server per la comunicazione TCP/IP. NET Conoscere la lunghezza di un file audio AUDIO Conoscere la posizione del file audio in esecuzione AUDIO Copiare uno o più files FILES Creazione di una lista UI Creazione di una lista di elementi modificabili UI Creazione di un menu UI Creazione di un file IO Disegnare una linea GRAPH Disegnare un cerchio GRAPH Disegnare un rettangolo GRAPH Effettuare una chiamata PHONE Elenco cartelle all'interno di una cartella FILES Elenco files di una cartella FILES Estrazione di un numero casuale MATH Fare partire la canzone da un punto desiderato AUDIO Ingrandire l'area del programma UI Inserimento di una variabile UI Inserimento di un messaggio UI Inserire un testo GRAPH Interrompere una chiamata PHONE Inviare un sms SMS Leggere una data linea IO Leggere un sms ricevuto SMS Lettura di un file per caratteri IO Lettura di un file per linee IO Ottenere il codice IMEI del cellulare GSM Ottenere il colore di uno o più pixel GRAPH Ottenere il livello del segnale per la rete corrente GSM Ottenere la data e l'orario corrente TIME Ottenere l'ID della cella nella quale ci troviamo GSM Realizzare un'applicazione a tutto schermo GRAPH Riprodurre un beep AUDIO Riprodurre un file audio (mid, wav, mp3, ecc...) AUDIO Salvare solo una porzione di quello che è disegnato GRAPH Salvare tutto quello che è stato disegnato in un'immagine GRAPH Sapere quali file sono presenti in un archivio .zip ZIP Sapere se un file esiste FILES Scattare e salvare una foto CAM Scrittura su un file IO Simulare la pressione di un tasto APP Stoppare un file audio in riproduzione AUDIO Tagliare un numero e tenere solo la parte intera MATH Tagliare un numero e tenere solo la parte decimale MATH Tagliare un numero e tenere tutta la parte intera e soltanto alcune cifre della parte decimale MATH Tenere la luce accesa UI Usare la vibrazione VIBRA Volume della periferica audio AUDIO _________________________________________________ INIZIO Per iniziare a scrivere il codice dobbiamo, ovviamente, prima aprire mShell. Una volta aperto clicchiamo col tasto di selezione sinistro e selezioniamo "New script". Qui possiamo già scrivere il codice. All'inizio del codice dobbiamo specificare di quali moduli faremo uso nella nostra applicazione; facciamo questo tramite l'istruzione use [modulo]. Un esempio, volendo creare un programma nel quale vogliamo fare uso di alcune immagini (anche immagini di design per abbellire il programma) dobbiamo fare uso del modulo GRAPH. Per avere la possibilità poi di gestire i tasti della tastiera del cellulare dovremo fare uso del modulo UI. La nostra applicazione inizierà quindi con il codice use graph,ui. Se dobbiamo fare uso di altri moduli basta separare questi tramite una virgola. OPERAZIONI FONDAMENTALI Addizione: x+y (somma di due numeri) (concatenazione di due stringhe) Sottrazione: x-y (sottrazione di due numeri) Moltiplicazione: x*y (prodotto di due numeri) Divisione: x/y (quoziente di due numeri) Resto: x%y (resto della divisione x/y) Eguagliazione: x=y (x assume il valore di y) Incremento 1: x++ (la variabile x viene incrementata di 1) Incremento 2: x+=y (è uguale a scrivere x=x+y, a x viene sommato y) Decremento 1: x-- (la variabile x viene decrementata di 1) Decremento 2: x-=y (è uguale a scrivere x=x-y, a x viene sottratto y) _________________________________________________ CICLI If : esegue le istruzioni finché la condizione è vera if condizione/i then istruzioni; end; If-Else: esegue le istruzioni che seguono l'If se la condizione è vera, altrimenti esegue le istruzioni che seguono l'Else if condizione/i then istruzioni; else istruzioni; end; While: esegue le istruzioni finché la condizione è vera while condizione/i do istruzioni; end; Do-Until: esegue almeno una volta le istruzioni che seguono il Do, e continua a eseguirle se la condizione che segue l'Until è vera do istruzioni; until condizione/i; For: utile se si deve eseguire una certa operazione un certo numero di volte for i=0 to 100 by 1 do istruzioni; end; i parte da 0 e finchè non arriva a 100 vengono eseguite le istruzioni. i viene ogni volta incrementato di 1 (by 1). (Solo in questo caso. i potrebbe partire da un qualsiasi numero e arrivare a un qualsiasi altro numero) _________________________________________________ CONDIZIONI: (le seguenti condizioni vanno usate come condizioni per If, Else e While) x=y (x è uguale a y) x#y (x è diverso da y) x<y (x è minore di y) x<=y (x è minore o uguale a y) x>y (x è maggiore di y) x>=y (x è maggiore o uguale a y) PIÙ CONDIZIONI condizione1 or condizione2 (è vera la condizione1 o è vera la condizione2) condizione1 and condizione2 (la condizione1 e la condizione2 devono essere tutt'e due vere) _________________________________________________ FUNZIONI FUORI DAI MODULI: cls() - pulisce lo schermo. a=len("parola") - riporta in a la lunghezza della parola scritta tra virgolette. a=len(array) - riporta in a la lunghezza dell'array scritto tra parentesi. a=lower("PAROLA") - a assumerà tutte le lettere della parola scritta tra parentesi, soltanto che queste saranno tutte lettere minuscole. a=num(numero) - utile se la variabile numero non viene ad esempio riconosciuta come numero ma come stringa. In questo modo si effettua la conversione da una stringa a un numero. a sarà quindi il nostro numero. sleep(numsecondi) - tra parentesi va scritto il numero, in millisecondi, per cui il programma si deve feramre. a=str(numero) - serve a convertire un numero in stringa formato testuale in modo da poterlo stampare con funzioni le quali vogliono come parametri delle stringhe. a=substr(vecchiastringa,inizio,lunghezza) - permette di tagliare la stringa vecchiastringa a partire dal carattere inizio per un numero di caratteri uguale a lunghezza. I caratteri "tagliati" andranno a finire nella variabile a. a=upper("parola") - a assumerà tutte le lettere della parola scritta tra parentesi, soltanto che queste saranno tutte lettere maiuscole. _________________________________________________ USI VARI DELLE FUNZIONI DEI MODULI: ricordatevi che per utilizzare le funzioni di ogni modulo dovete specificare, all'inizio del programma, che avete intenzione di usare quel determinato modulo. Scriverete quindi per esempio: use graph per utilizzare più moduli nello stesso programma basta scrivere per esempio: use graph,math,ui AGENDA - APP Aprire un'applicazione/file app.open("percorso_del_file"); Scrivendo il percorso del file tra virgolette verrà aperta l'applicazione. Per i programmi/giochi è necessario scrivere il percorso del file APP che si trova in C:\SYSTEM\APPS\ o in E:\SYSTEM\APPS\. La funzione può essere usata anche per aprire file che non siano applicazioni; in quel caso verrà aperto automaticamente il programma a cui è associata l'estensione del file. Simulare la pressione di un tasto ui.keys(true); app.key([53,-53]) Dichiariamo prima gli interessi all'uso degli eventi-tastiera tramite la funzione ui.keys(). L'esempio mostra come simulare la pressione di un qualsiasi tasto (in questo caso il tasto 5). Alla funzione app.key() passiamo come parametri i codici dei tasti da simulare. Il valore positivo indica il tasto premuto, il valore negativo indica il tasto rilasciato. Per simulare altri tasti basta scrivere sempre nello stesso array i codici corrispondenti. Elenco completo dei tasti con relativo codice tastiera: joystick sinistra: 14 joystick destra: 15 joystick sopra: 16 joystick sotto: 17 pressione joystick: 167 matita: 18 C: 1 0: 48 1: 49 2: 50 3: 51 4: 52 5: 53 6: 54 7: 55 8: 56 9: 57 *: 42 #: 127 selezione sinistro: 164 selezione destro: 165 spegnimento: 166 blocca tastiera: 169 verde: 196 rosso: 197 menu: 180 ARRAY Concatenare due o più array. Se abbiamo due array e li vogliamo concatenare basta usare la funzione array.concat() ad esempio abbiamo due array: a=["mela","pera"]; b=["ciliegia","banana"] c=array.concat(a,b ) print c -->[mela,pera,ciliegia,banana] AUDIO Conoscere la lunghezza di un file audio. audio.open("percorso_del_file"); a=audio.len(); Con la prima istruzione apriamo il file audio di cui vogliamo conoscere la lunghezza. Con la seconda nella variabile a viene allocata la lunghezza in millisecondi del file audio Conoscere la posizione del file audio in esecuzione. audio.open("percorso_del_file"); a=audio.pos(); Con la prima istruzione apriamo il file audio sul quale vogliamo lavorare. Con la seconda nella variabile a viene allocata la posizione in millisecondi del file audio in esecuzione, che ovviamente se prima non avviaremo con la funzione audio.play() ritornerà il valore 0. Fare partire la canzone da un punto desiderato. audio.open("percorso_del_file"); audio.pos(10000); audio.play(); while audio.busy() do end; Se non si vuole eseguire un brano dall' inizio ma ad esempio da 10 secondi, apriamo prima il file. Prima di avviarlo con la funzione audio.play() decidiamo da quanti millisecondi partendo dall'inizio deve suonare la canzone. Dopo ciò riproduciamo il file come spiegato sotto. Riprodurre un beep audio.beep(frequenza,millisec); while audio.busy() do end; Con questa funzione possiamo far riprodurre al cellulare un determinato suono alla frequenza voluta, per il tempo che desideriamo. Tra parentesi dobbiamo scrivere due numeri: la frequenza del suono da riprodurre e il tempo (espresso in millisecondi) per il quale dovrà essere riprodotto il suono. Dopo la funzione audio.beep() dobbiamo tenere il cellulare impegnato a fare qualcosa (anche a fare "niente", come nel codice di cui sopra), in questo caso con while audio.busy() do end;, che significa che il cellulare resta impegnato a fare "niente" intanto che l'audio è impegnato (la funzione audio.busy() ci dice se l'audio è o non è impegnato). Riprodurre un file audio (mid, wav, mp3, ecc...) audio.play("percoso_del_file"); while audio.busy() do end; Per riprodurre il suono usiamo la funzione audio.play(). Tra le parentesi scriviamo, dentro virgolette, il percorso del nome del file da aprire. I file che possono essere riprodotti sono quelli che può leggere il cellulare. Ad esempio il 6600 di suo non può aprire files mp3. Dopo la funzione audio.play() dobbiamo tenere il cellulare impegnato a fare qualcosa (anche a fare "niente", come nel codice di cui sopra), in questo caso con while audio.busy() do end;, che significa che il cellulare resta impegnato a fare "niente" intanto che l'audio è impegnato (la funzione audio.busy() ci dice se l'audio è o non è impegnato). Stoppare un file audio in riproduzione. audio.stop(); Per fermare un file audio in riproduzione basta questa semplicissima funzione. Volume della periferica audio. audio.volume(volume); Questa funzione serve per regolare il volume dell'audio che verrà riprodotto con il programma. Il volume desiderato va scritto tra le parentesi della funzione, ricordando che il volume MAX=100 e il volume MIN=0. BIGINT - BT - CAM Acquisire immagini dalla fotocamera. cam.on(1); while true do a=cam.take(); graph.put(0,0,a); graph.show(); end Utilizzando la funzione cam.take() è necessario utilizzare anche il modulo graph. Eseguendo questo codice verrà mostrato in alto a sinistra sullo schermo la sequenza delle immagini riprese dalla fotocamera con una risoluzione di 160x120 (questo perchè alla funzione cam.on() abbiamo passato come parametro il valore 1). Le immagini vengono progressivamente archiviate nella variabile a, tramite la funzione graph.put() posizioniamo queste alle coordinate x=0 e y=0 (l'angolo in alto a sinistra) e tramite la funzione graph.show() mandiamo ripetutamente le immagini a video. Scattare e salvare una foto graph.size(640,480); //nel caso del Nokia 6600 cam.on(0); a=cam.take(); graph.put(0,0,a); graph.save("e:\\immagine.jpg"); E' sempre la funzione cam.take() che permette di acquisire foto. A differenza del punto Acquisire immagini dalla fotocamera in questo caso la dimensione dell'immagine che verrà scattata non sarà di 160x120 bensì di 640x480 (nel caso del Nokia 6600) in quanto alla funzione cam.on() abbiamo passato stavolta il parametro 0. Una volta acquisita l'immagine e salvata questa nell'oggetto a poniamo questa immagine nello spazio riservato alla grafica (senza però necessariamente mandarla a video). Direttamente salviamo l'immagine alla destinazione voluta tramite la funzione graph.save(). Modificato 24 Ottobre 2009 da masmil1988 Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 28 Settembre 2006 Autore Segnalazione Share Pubblicato: 28 Settembre 2006 (modificato) COMM - CONTACTS - FILES Copiare uno o più files files.copy("sorgente","destinazione",ricorsività=true/false); Al posto di "ricorsività=true/false" si mette appunto true o false a seconda che si voglia (true) o meno (false) copiare tutti i files continui all'interno di un percorso di una directory, dunque ricreando l'esatta struttura di quella sorgente. esempio: files.copy("c:\\documents\\mShell\\*.m","E:\\documents\\mShell\\", true) (copia tutti i files con la sola estensione *.m) Elenco cartelle all'interno di una cartella. a=files.scan("e:\\",files.dir); La variabile a sarà un array contenente tutti i nomi della cartelle presenti in "e:\". Elenco files di una cartella. a=files.scan("e:\\*.*"); La variabile a sarà un array contenente tutti i nomi dei files presenti in "e:\". Sapere se un file esiste. a=files.exists("e:\\esempio.txt"); Questa funzione restituisce un valore booleano, quindi: se il file esiste a=true se non esiste a=false GRAPH Apertura di un'immagine. graph.size(x,y); immagine=graph.icon("percorso_del_file"); graph.put(coord_x,coord_y,immagine); graph.show(); Per aprire un'immagine inizialmente dobbiamo definire l'altezza e la larghezza della parte di schermo che dobbiamo utilizzare (x e y di graph.size()). Fatto ciò possiamo indicare il percorso dell'immagine da aprire usando la funzione graph.icon(), dentro alle quali parentesi scriveremo tra virgolette il percorso di questa. Ricordandoci che invece di "\" dobbiamo scrivere "\\" (esempio: "e:\\images\\immagine.jpg"). Con la funzione graph.put() andiamo a specificare in quale spazio è aperta l'immagine (nel nostro caso è nella variabile immagine). Tra parentesi dopo graph.pu andiamo a scrivere le coordinate x e y dove andrà a comparire l'immagine e la variabile dove si trova l'immagine. Infine usiamo la funzione graph.show() per mostrare a video tutto quello che abbiamo caricato sulla grafica nel frattempo. Cambiare colore di riempimento. graph.brush(colore); Dopo questa istruzione cambierà il colore di riempimento per le varie figure (rettangoli, cerchi, ecc...) Il colore che passeremo come paremetro alla funzione dovrà essere un numero intero, calcolato come spiegato sotto. Cambiare colore di scrittura. graph.pen(colore); Dopo questa istruzione cambierà il colore della penna e dei bordi delle varie figure geometriche (rettangoli, cerchi, linee...). Il colore che passeremo come paremetro alla funzione dovrà essere un numero intero. Calcolo del colore: ogni colore prende vita da 3 valori, che sarebbero rispettivamente la tonalità di Rosso (Red), Verde (Green), Blue (Blue). Il sistema è detto appunto (RGB). La tonalità di ogni colore va da 0 a 255. Basta scegliere la tonalità di ognuno dei 3 colori, convertire ognuno di questi in esadecimale, affiancare tutti e 3 i numeri in esadecimale (prima il rosso, poi il verde e poi il blue e quindi riconvertire il numero nel sistema decimale. Cambiare o ottenere il font utilizzato nel modulo graph. graph.font(); I font sono espressi sotto forma di un array suddiviso in quattro campi: [nomedelfont,dimensione,grassetto,corsivo] nomedelfont è una stringa, dimensione è un numero, grassetto e corsivo invece sono due boolean. Per settare un nuovo font basta passare alla funzione un array contenente i 4 parametri sopra indicati. Disegnare una linea. graph.line(x1,y1,x2,y2); graph.show(); x1 è l'ascissa del punto da dove deve partire la linea. y1 è l'ordinata del punto da dove deve partire la linea. x2 è l'ascissa di fine. y2 è l'ordinata di fine. Disegnare un cerchio graph.circle(x,y,diametro) Tramite questa funzione è possibile disegnare un cerchio, dove: x sta alle ascisse, y sta alle ordinate, il diametro è espresso in pixel. NB: x e y non definiscono il centro del cerchio ma il vertice superiore sinistro del cerchio, come se fosse un'immagine. Disegnare un rettangolo. graph.rect(x,y,w,h); graph.show(); x è l'ascissa. y è l'ordinata. w è la larghezza. h è l'altezza. Inserire un testo graph.text(x,y,testo,direzione); Tramite questa funzione si può inserire un testo con coordinate x e y Se direzione è uguale a zero allora il testo sarà disegnato orizzontalmente. Se direzione è maggiore di zero il testo sarà disegnato verticalmente verso su. Se direzione è minore di zero il testo sarà disegnato verticalmente verso giù Ottenere il colore di uno o più pixel. graph.get(x,y); Si ottiene il colore del pixel che ha posizione x e y. graph.get(x,y,w); Si ottiene un array contenente i colori dei pixel della linea di lunghezza w con partenza da x e y. graph.get(x,y,w,h); Questa volta si otterrà un array contenente tanti array quanto h, in pratica ogni array contiene i colori di una linea. Realizzare un'applicazione a tutto schermo. graph.size(176,208); graph.full(true); In questo modo passiamo prima alla funzione graph.size() le dimensioni del nostro schermo (che sono appunto 176x208) e con l'istruzione graph.full(true) abilitiamo la grapica a tutto schermo. Possiamo ora utilizzare tutti i 176x208 pixel per le nostre applicazioni. Senza l'istruzione graph.size(176,208) la grafica verrà ugualmente impostata a tutto schermo, non potremo però lavorare sugli ultimi 176x20 pixel in basso (che sono i pixel occupati dalla barra sottostante). Salvare solo una porzione di quello che è disegnato. graph.save(percorso,x,y,w,h); x sta alle ascisse, y alle ordinate, w sta alla larghezza, h sta all'altezza. NB: sono supportate solo 3 estensioni: gif,jpg,png. Salvare tutto quello che è stato disegnato in un'immagine. graph.save("E:\\immagine.jpg"); Con questa funzione viene salvato su immagine.jpg tutto quello che è stato disegnato in precedenza, la risoluzione dell'immagine sarà quella attribuita con la funzione graph.size(). GSM Ottenere il codice IMEI del cellulare print gsm.imei Il modulo gsm ha all'interno una costante chiamata imei che contiene appunto il relativo codice del telefono. Attenzione a non mettere le parentesi aperta-chiusa dopo gsm.imei perché in questo caso non parliamo di una funzione, ma bensì di una costante e quindi un numero che è già in memoria. Ottenere il livello del segnale per la rete corrente a=gsm.signal() In questo modo nella variabile a verrà ritornato il valore corrispondente al livello del segnale nel luogo in cui siamo. Il numero che verrà ritornato sarà compreso tra 0 e 100. Ottenere l'ID della cella nella quale ci troviamo a=gsm.cid() Questa funzione ritornerà in a l'ID della cella nel quale ci troviamo. Ricordando che l'ID identifica una precisa area geografica. IO per utilizzare alcune funzioni di questo modulo il programma richiede i permessi per leggere e scrivere su file. All'installazione di mShell questi permessi non sono tutti abilitati. Per abilitare questi bisogna: aprire mShell, cliccare sul tasto di selezione sinistro (mShell), scorrere fino a "view" e selezionare "permissions". Una volta giunti alle opzioni assicurarsi che ogni voce riporti la voce "Yes" a fianco. Aggiunta di un testo a un file. a=io.append("percorso_del_file", io.raw) Con la funzione io.append() possiamo aggiungere del testo a un file contenente già altro testo. Per fare ciò dobbiamo scrivere tra parentesi (tra virgolette) il percorso del file da aprire e seguentemente la costante io.raw . Nell'esempio, nella variabile a verrà memorizzato l'indirizzo del file aperto. Questo indirizzo sarà l'indirizzo che andremo a usare nelle funzioni per leggere e scrivere su un file. Se il file specificato nel percorso non esiste, questa funzione assumerà lo stesso compito della funzione io.create(). Apertura di un file io.open("percorso_del_file", false/true, io.raw) Per "apertura" non intendiamo la lettura di un file. Questa funzione ci è utile per avere l'indirizzo di un file già esistente in memoria, utile quest'ultimo per leggere e scrivere su un file. Tra parentesi (tra virgolette) scriviamo dapprima il percorso del file da aprire. Dopo ciò scriviamo true o false a seconda delle nostre esigenze. Se scriveremo "true" l'utente, una volta aperto il file, avrà accesso sia alla scrittura che alla lettura di questo. Scrivendo "false" l'utente avrà accesso al file solo per quanto riguarda la lettura. Creazione di un file. nuovofile=io.create("percorso_del_file",io.raw) Questa funzione ci permette di creare all'indirizzo specificato un file vuoto. L'indirizzo del file va scritto tra virgolette al posto di percorso_del_file. La specifica io.raw che segue l'indirizzo sta a specificare che il file può essere trattato per la lettura (Read), per l'aggiunta di testo (Append) e per la scrittura su questo (Write). Assegnando tutto questo alla variabile nuovofile, in quest'ultima verrà salvato l'indirizzo del file, che viene rilasciato nella variabile al termine della funzione io.create(). Leggere una data linea. a=io.open("e:\\esempio.txt") for i=1 to 4 by 1 do io.readln(a); end print io.readln(a); io.close(a); Nel caso volessimo leggere una determinata linea saltando le precedenti, dobbiamo sapere che mShell non ha l'accesso random alla lettura din un file. Potremmo però ricorrere a un altro metodo. Il codice riporta l'esempio per la lettura della quinta riga del file e:\esempio.txt. Non abbiamo fatto altro che aprire il file e allocare l'indirizzo in a, poi per quattro volte abbiamo spostato il puntatore di una riga, infine abbiamo stampato la riga successiva, quindi la 5. Come al solito infine chiudiamo il file. Lettura di un file per caratteri. a=io.open("e:\\esempio.txt"); print io.read(a, numerocaratteri); io.close(a); Nella variabile a viene allocato l'indirizzo del file, per la lettura è sufficiente scrivere solo il percorso del file. Con io.read() abbiamo dovuto scrivere l'indice del file (variabile a) e il numero di caratteri che vogliamo leggere, che vengono poi visualizzati con print. Infine abbiamo chiuso il file con la funzione io.close(). Lettura di un file per linee. a=io.open("e:\\esempio.txt") for i=1 to 3 by 1 do print io.readln(a); end io.close(a); Il procedimento è simile a quello utilizzato per lettura di un file per caratteri: abbiamo aperto il file e per tre volte, mediante l'istruzione for i=1 to 3 by 1; abbiamo letto e stampato sullo schermo le prime tre linee del file; infine abbiamo poi chiuso il file con l'istruzione io.close(a). Scrittura su un file. io.write(indirizzo_del_file, "testo") Con questa funzione saremo in grado di scrivere del testo su un file. Il file sul quale scrivere non viene individuato mediante il percorso di questo, bensì mediante l'indirizzo, ottenuto per esempio come specificato nel paragrafo "CREAZIONE DI UN FILE". Se il file esiste già possiamo avere l'indirizzo come specificato nel paragrafo "APERTURA DI UN FILE". Il testo da scrivere sul file può essere contenuto in una variabile o può essere scritto direttamente tra virgolette. Modificato 14 Giugno 2009 da masmil1988 Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 29 Settembre 2006 Autore Segnalazione Share Pubblicato: 29 Settembre 2006 (modificato) MATH Estrazione di un numero casuale. per estrarre un numero casuale bisogna usare la funzione math.random(), in questo modo: a=math.random()*1000000000; b=a%nummax+1; In quanto con la funzione math.random() viene estratto un numero decimale che va da 0 a 1 (che poi casuale non è perchè si basa in un certo qual modo sull'orario) moltiplichiamo questo numero per un numero elevato (in questo caso 1000000000) in modo da rendere questo maggiore di 0. Dividiamo allora questo per nummax (che sarebbe il valore massimo che vogliamo sia estratto) ottenendo il resto di questa divisione (l'abbiamo diviso con il simbolo % che serve a calcolare il resto della divisione) e il valore "casuale" in questo caso andrà a finire in b. Dopo nummax abbiamo scritto "+1" in modo tale che il numero estratto vada "da 1 a nummax". Senza il "+1" il numero estratto andrà "da 0 a nummax-1" Tagliare un numero e tenere solo la parte intera. a=math.trunc(numero); In questo modo andremo a mettere in a solo la parte intera del numero contenuto nella variabile numero. Tagliare un numero e tenere solo la parte decimale. b=a; a=math.trunc(a); b=b-a Con questo codice non facciamo altro che: copiare a in b, tagliare ad a la parte decimale, tenendo così soltanto quella intera, sottrarre a b (dove abbiamo ancora il numero comprensivo di cifre decimali) la parte intera contenuta in a. Alla fine la parte decimale resta nella variabile b. Breve descrizione delle funzioni del modulo MATH math.abs(x) - ritorna il valore assoluto di x math.acos(x) - ritorna l'arco coseno di x (in radianti) math.asin(x) - ritorna l'arco seno di x (in radianti) math.atan(x) - ritorna l'arco tangente di x (in radianti) math.ceil(x) - ritorna il primo intero maggiore di x (nel caso x sia un numero decimale) o uguale a x math.cos(x) - ritorna il coseno di x (in radianti) math.exp(x) - ritorna e^x, ricordando che "e" è la base del logaritmo naturale (vale 2,718281828459045) math.floor(x) - ritorna il primo intero minore di x (nel caso x sia un numero decimale) o uguale a x math.log(x) - ritorna il logaritmo naturale di x math.pow(x,y) - ritorna il valore x^y math.sin(x) - ritorna il seno di x (in radianti) math.sqrt(x) - ritorna la radice quadrata di x math.tan(x) - ritorna la tangente di x (in radianti) math.trunc(x) - ritorna la parte intera di x MSG - MMS - NET Connettersi a un server per la comunicazione TCP/IP. connessione=net.conn(indirizzo_server, porta) Tramite la funzione net.conn() è possibile instaurare una connessione col server desiderato sulla giusta porta. La funzione ritorna uno stream sul quale è poi possibile comunicare tramite il modulo IO. E' necessario un esempio per chiarirne il funzionamento. Per quest'esempio è stato utilizzato il protocollo FTP: s=net.conn("ftp.interfree.it",21); // si crea lo stream s print io.readln(s); // stampa a video della risposta del server vett=["USER masmil1988","PASS ***","CWD /Altro","PWD"]; // elenco delle istruzioni che vengono inviate al server for i=0 to len(vett)-1 by 1 do io.write(s,vett[i]+"\r\n"); // \r\n indica la fine dell'istruzione (ritorno carrello e nuova linea) // Questo è necessario in quanto non si è a conoscenza della lunghezza (in termini di righe) della risposta del server. // La io.timeout() è necessaria in quanto se non vi è più alcuna riga nella risposta la funzione io.readln() attende indefinitamente che ve ne sia una. while true do io.timeout(1000); try r=io.readln(s); print r; catch e by break; end; end; end; OBEX - PHONE Effettuare una chiamata. phone.dial("numero_di_telefono",durata); Il numero di telefono che passeremo alla funzione dovrà essere una stringa e non un numero intero. La durata che passeremo sarà invece un intero e sarà espressa in millisecondi. Passando soltanto il numero di telefono, senza la durata la chiamata verrà soltanto avviata, senza sapere quando finirà. Interrompere una chiamata. phone.hangup(); Con questa semplicissima funzione verrà interrotta la chiamata in corso. PROC Chiudere l'applicazione corrente proc.close(); In questo modo l'applicazione eseguita su mShell verrà terminata istantaneamente e verrà mostrato nuovamente l'elenco delle applicazioni presenti sul cell eseguibili da mShell. Per una migliore funzionalità del codice penso sia utile chiudere le applicazioni con questo codice, in modo da tornare subito all'elenco dei programmi e non dover ogni volta chiudere l'applicazione manualmente una volta terminata l'esecuzione. SMS Attendere per la ricezione di un sms a=sms.receive(-1) Questa funzione fa si che il programma si blocchi nell'attesa di un nuovo sms. Tra parentesi scriviamo il tempo, in millisecondi, per il quale vogliamo attendere l'sms. Scrivendo tra parentesi -1 il programma aspetterà senza limite di tempo l'arrivo del primo sms. Una volta arrivato l'sms in a non avremo direttamente le informazioni sul messaggio, ma bensì l'ide del messaggio ricevuto, che non sarà altro che un numero. Per avere le informazioni relative a questo messaggio (numero del mittente, testo, ecc...) si rimanda al punto Leggere un sms ricevuto. Inviare un sms sms.send("numero_destinatario","testo del messaggio") La funzione sms.send() ci permette di inviare un sms in modo semplice. Alla funzione dobbiamo passare come parametri il numero del destinatario (come stringa, quindi tra virgolette) e il testo del messaggio (sempre come stringa). Se vogliamo inviare lo stesso sms a più persone contemporaneamente possiamo passare, al posto del numero del destinatario, un array di stringhe contenenti i numeri di telefono ai quali dobbiamo inviare l'sms. Leggere un sms ricevuto a=sms.inbox() b=sms.get(a[0]) Con questo codice possiamo avere le informazioni relative a un qualsiasi messaggio ricevuto. La prima funzione, ovvero la sms.inbox() ci ritornerà in a un array contenente gli id di tutti i messaggi della casella "Messaggi ricevuti". Avendo gli id possiamo avere le informazioni relative ai messaggi tramite la funzione sms.get(). A questa funzione passiamo come parametro la variabile a (dove avevamo tutti gli id) completa di indice che identifica il messaggio specifico. Nell'esempio passiamo la variabile a con indice 0 (zero). Il messaggio 0 è il primo messaggio tra quelli ricevuti, ovvero il più vecchio. La funzione sms.get() ritornerà in b un array contenente tutte le informazioni sul messaggio. Nello specifico sarà un array di 4 celle, identificabili in questo modo: cella 0: numero telefonico del mittente cella 1: testo del messaggio cella 2: data del messaggio (ritornata questa come numero di secondi trascorsi a partire dall'inizio dell'anno 0) cella 3: true o false, a seconda che il messaggio sia stato letto (false) o no (true). NB: Per ottenere la data in formato comune si rimanda alla funzione time.str(), illustrata tra le funzioni del modulo TIME. SYSTEM - TIME Ottenere la data e l'orario corrente a=time.get(); b=time.str(a); Con la funzione time.get() ritorneremo in a il numero di secondi trascorsi dal primo gennaio dell'anno 0 fino all'esatto secondo in cui è stata eseguita la funzione. Per trasformare questo numero in formato comprensibile (cioè in data) utilizziamo la funzione time.str() passandogli come parametro la variabile a, nella quale è riportato il numero di prima (il numero di secondi dall'inizio dell'anno 0). La data finale verrà riportata come stringa nella variabile b. Come parametro opzionale, possiamo passare alla funzione time.str() anche il formato in cui vogliamo ci venga restituita la data. In questo caso scriveremo la funzione time.str() in questo modo: b=time.str(a,"YYYY-MM-DD hh:mm:ss") dove: YYYY sta per l'anno (mettendo 2 sole Y c verranno date solo le ultime 2 cifre dell'anno) MM sta per il mese DD sta per il giorno hh sta per l'ora mm sta per i minuti ss sta per i secondi NB: se vogliamo evitare di estrarre alcuni di questi dati possiamo benissimo omettere dalla stringa quello che non ci interessa. UI Attesa per il tocco dello schermo e estrazione delle coordinate del tocco. ui.ptr(ui.relative); pressione=ui.cmd(-1); Alla funzione ui.ptr() passiamo come parametro una costante (ui.relative=2) la quale indica che vogliamo ottenere dal tocco le coordinate relative alla dimensione della parte di schermo relativa al nostro programma. La funzione ui.cmd() resterà in attesa per un tempo indeterminato (-1) fin quando non verrà toccato lo schermo in un punto qualsiasi del programma. Una volta premuto su un punto qualsiasi dello schermo verranno ritornate in pressione["x"] e in pressione["y"] le coordinate relative al tocco prendendo come punto di partenza (0,0) l'angolo in alto a sinistra del programma. Nella terza cella dell'array ritornato in pressione (pressione["buttons"]) troviamo invece il tipo di tocco, ovvero se è stato premuto o rilasciato lo schermo. - in corrispondenza della pressione troveremo il valore 1 - in corrispondenza del rilascio troveremo il valore 0 Nel caso volessimo ottenere le coordinate assolute sarà necessario sostituire alla costante ui.relative (2) l'altra costante ui.absolute (4). Attesa per la pressione di un tasto, riconoscimento del tasto premuto. ui.keys(false,false); a=ui.cmd(-1); ...il programma si fermerà nell'attesa che venga premuto un tasto, una volta premuto il tasto viene posizionato nella variabile a il numero corrispondente al tasto premuto. qui sotto è elencata la lista dei tasti del cellulare col corrispondente numero che verrebbe in tal caso rilasciato nella variabile a 0: 48 1: 49 2: 50 3: 51 4: 52 5: 53 6: 54 7: 55 8: 56 9: 57 *: 42 #: 35 su (joystick): 63497 giù (joystick): 63498 sinistra (joystick): 63495 destra (joystick): 63496 verde: 63586 rosso: 63587 menu: 63570 C: 8 matita: 63499 Creazione di una lista a=ui.list(["uno","due","tre","quattro","cinque"],false,[],"Numeri") Scrivendo il seguente codice creeremo una lista nella quale potremo selezionare un elemento. Nella variabile a verrà ritornato il numero corrispondente all'elemento selezionato (partendo da 0 per il primo elemento). Tra parentesi scriveremo inizialmente l'array con tutti gli elementi che vogliamo far comparire nella lista (che possiamo anche creare prima e scrivere quindi il nome identificativo dell'array). Dopo la lista degli elementi dovremo specificare se la lista deve permettere la multiselezione (true) o no (false). Fatto ciò, nel caso in cui abilitassimo la multiselezione, specifichiamo quali elementi devono essere selezionati sin dall'inizio (scrivendo [] nel caso nn volessimo selezionare niente. Infine scriveremo tra virgolette il nome della finestra che comparirà a video. Creazione di una lista di elementi modificabili a=["Nome":"", "Cognome":"", "Nick":"nessuno"]; b=ui.form(a) Nella variabile a creiamo così un array, dove andremo a mettere tutte le parti della nostra lista. Con la funzione ui.list() andiamo invece a trasferire tutto il contenuto di a in b, andando però a visualizzare a video una lista, dove poter inserire i valori. A sinistra compariranno le diciture Nome, Cognome, Nick (queste non modificabili). A destra di ognuna comparirà invece un campo modificabile, che in questo caso sarà vuoto per i campi Nome e Cognome, e che in corrispondenza di Nick avrà già scritto "nessuno". Quest'ultimo anche se già scritto può essere comunque modificato. Nel caso in cui non dovremmo inserire noi una variabile ma dovessimo sceglierla tra una serie preimpostata di valori dovremmo scrivere quanto segue, prendendo per esempio il campo Nome: a=["Nome":["Carlo","Francesco","Mario"], "Cognome":"", "Nick":"nessuno"]; b=ui.form(a) Non facciamo altro che creare un'array dentro l'array dentro al quale definiamo le scelte possibili. Una volta dentro al programma, possiamo scorrere tra gli elementi muovendo il joystick a destra e a sinistra. Ogni campo viene separato dall'altro tramite una virgola; non necessariamente bisogna andare a capo tra un campo e l'altro, è soltanto una questione di migliore comprensione del codice. Creazione di un menu. ui.menu("Operazioni", ["Somma", "Sottrazione", "Esci"]); while true do c=ui.cmd(); if c="Somma" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La somma è uguale a " num1+num2; end; if c="Sottrazione" then num1=ui.query("Inserisci il primo numero: ",""); num2=ui.query("Inserisci il secondo numero: ",""); print "La differenza è uguale a " num1-num2; end; if c="Esci" then break end; end Con queste istruzioni possiamo far comparire la scritta Operazioni (corrispondente questa al tasto di selezione sinistro) e cliccando su questa comparirà un menu a tendina dove troveremo le varie possibilità. Nel nostro cao le possibilità sono "Somma", "Sottrazione" o "Esci". Con l'istruzione c=ui.cmd() diciamo al pogramma che se clicchiamo su "Somma" esso deve eseguire tutte le istruzioni corrispondenti a questa, e lo stesso se clicchiamo su "Sottrazione". Cliccando invece su "Esci" il programma dovrà uscire dal while dentro al quale si trova (con l'istruzione break). Tenere la luce accesa ui.idletime(true); Eseguendo questa istruzione verrà resettato il timer che temporizza il tempo di inattività. In questo modo la luce si accende (o si mantiene accesa). VIBRA - ZIP Apertura di un archivio .zip zipfile=zip.open("percorso_del_file"); La funzione zip.open() ritorna in zipfile l'oggetto nativo per accedere al file del quale è stato passato il percorso. Sarà possibile lavorare all'interno di questo file trattando zipfile. Sapere quali file sono presenti in un archivio .zip arrayzip=zip.scan(zipfile, null); In questo modo, avendo cura di aver prima aperto il file zip con la funzione zip.open(), è possibile conoscere quali file sono presenti nell'archivio zip. In arrayzip verrà ritornato un array contenente le informazioni su ogni singolo file. Ogni file è identificato da 4 parametri: il nome, la grandezza originale del file, la grandezza compressa del file, e un valore che attesta la correttezza del file zip (CRC). Modificato 24 Ottobre 2009 da masmil1988 Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 1 Ottobre 2006 Autore Segnalazione Share Pubblicato: 1 Ottobre 2006 SI, vedo di aggiungere qualcosa per là al più presto. Penso che domani lo faccio (oggi no sicuro perchè sto uscendo e non torno più a computer per stasera) Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 3 Ottobre 2006 Autore Segnalazione Share Pubblicato: 3 Ottobre 2006 Con un giono di ritardo, ma comunque ho aggiunto le funzioni base per il trattamento del contenuto di un file. Link to comment Condividi su altri siti More sharing options...
Shides Pubblicato: 25 Aprile 2007 Segnalazione Share Pubblicato: 25 Aprile 2007 Agenda Permessi necessari: WriteApp AGGIUNGERE UN'APPUNTAMENTO ALL'AGENDA (agenda.add) // Calcolare la differenza tra una data e un'altra //in millisecondi(credo) e=["text": "Testo_della_appuntamento", "flags": agenda.anniv, "start": time.num("YYYY-MM-DD"), "base": 1564, "rep": ["type":agenda.yearlydate]]; agenda.add(e) → 117440532 Con questo codice aggiungeremo all'agenda una data che si ripeterà ogni anno: Nell'array(correggimi se sbaglio) "text": dovremo scrivere il testo che comparirà quel giorno nell'agenda - "flags": metteremo il tipo di appuntamento(in questo caso agenda.anniv che aggiunge l'appuntamento in modo che si ripeta ogni anno. - "start": scriveremo la data dell'anniversario nel formato YYYY-MM-DD - "base": metteremo la data di inizio da calcolare - "rep": scriveremo soltanto se vorremmo fare riperete l'azione - ["type":agenda.yearlydate] scriveremo ogni quanto vorremmo fare ripetere l'azione. Con -agenda.yearldate- l'azione si ripeterà ogni anno - agenda.add(e) con questa stringa diciamo al programma di aggiungere all'agenda la variabile "e" Il risultato credo che sia mostrato in millisecondi, e ogni anno ripete l'azione aggiungedo i millisecondi... P.s: credo sia giusto, in caso di errori ditemelo Link to comment Condividi su altri siti More sharing options...
Mauro90 Pubblicato: 21 Giugno 2007 Segnalazione Share Pubblicato: 21 Giugno 2007 ciao!!! notizie fresche dal sito di mshell... Simulare la pressione di un tasto app.key([53,-53]) -> Simula la pressione del tasto "5", 1 volta Se si desidera premere quel tasto più volte è sufficiente concatenare all'array il codice del tasto ad es, scrivere "k" -> app.key([53,-53,53,-53]) Spero sia utile.. se qlkn gentilmente prova....a me funge x i tasti, ma per tasti tipo menu, ecc, no.... a voi??? Ps , se volete sapere il codice dei tasti del cell, fate csi: use ui; key=null; while key#53 do //esce col tasto 5 ui.keys(false,false); key=ui.cmd(-1); cls(); print(key); end; Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 24 Giugno 2007 Autore Segnalazione Share Pubblicato: 24 Giugno 2007 (modificato) No, non mi pare di averla mai inserita, perchè io stesso non l'ho mai usata... Se vuoi puoi scriverla tu, se ti va Per ora credo che gli orizzonti sono puntati verso la simulazione dei tasti. Dopo un breve lavoro ecco a voi l'elenco dei tasti con relativo codice: joystick sinistra: 14 joystick destra: 15 joystick sopra: 16 joystick sotto: 17 pressione joystick: 167 matita: 18 C: 1 0: 48 1: 49 2: 50 3: 51 4: 52 5: 53 6: 54 7: 55 8: 56 9: 57 *: 42 #: 127 selezione sinistro: 164 selezione destro: 165 spegnimento: 166 blocca tastiera: 169 verde: 196 rosso: 197 menu: 180 (corretto, grazie a xMetallicax) PUNTUALIZZAZIONI: - Al codice 169 corrisponde blocco tastiera, non corrisponde a nessun tasto del cellulare ma eseguendo questo codice compare il messaggio "Bloccare tastiera?". - Non so perchè ma per il tasto matita non c'è nessun codice negativo (ovvero mancail rilascio...), non so se questo comporta problemi o è una cosa normale. Comunque sia, i tasti della tastiera ci sono tutti ed è possibile controllare a pieno il cellulare Modificato 24 Giugno 2007 da masmil1988 Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 27 Giugno 2007 Segnalazione Share Pubblicato: 27 Giugno 2007 (modificato) Topic Ripulito. Gente, non siate timidi con l'apertura dei Topic! Se avete domande o dubbi inerenti a questo linguaggio, siete calorosamente invitati ad aprire nuovi Topic ( possibilmente usando il tag [mShell] ) Modificato 27 Giugno 2007 da Il.Socio Link to comment Condividi su altri siti More sharing options...
kchristian91 Pubblicato: 1 Luglio 2007 Segnalazione Share Pubblicato: 1 Luglio 2007 ragazzi Volevo Inteprendere..O Meglio Apprendere...Un Pò La Creazioni Di Applicazioni..(Per Ora Ho Fatto Solo Temi)... Volevo Solamente Chiedere per Ora..Se Questo Programma Si Paga...!! Risp..Grazie!!! Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 1 Luglio 2007 Autore Segnalazione Share Pubblicato: 1 Luglio 2007 Si, non paghi il programma in se, che è liberamente scaricabile da www.m-shell.net, ma paghi la registrazione del programma che ha il costo din un sms: 15 centesimi (tranne per vodafone che costa 30 centesimi). Per il resto è tutto freeware Link to comment Condividi su altri siti More sharing options...
kchristian91 Pubblicato: 2 Luglio 2007 Segnalazione Share Pubblicato: 2 Luglio 2007 ah ok grazie 1000....nel caso avessi bisogno di qualcos'altro (sicuramente ne avrò XD) verrrò ancora quì a rompervi arieccolo... ..ma cn qst proramma...posso creare applicazioni...nel senso io avevo in mente di fare un programma..dove metto tutti i risultati del mondiale...2006...magari anche cn qualche bandieruzza ..mi consigliate di usare questo programma oppure magari un'altro...che possa fare + al caso mio?? Link to comment Condividi su altri siti More sharing options...
Mauro90 Pubblicato: 2 Luglio 2007 Segnalazione Share Pubblicato: 2 Luglio 2007 usa qst...vai nel primo messagio del topic e datti uno sguardo al modulo graph... Link to comment Condividi su altri siti More sharing options...
kchristian91 Pubblicato: 2 Luglio 2007 Segnalazione Share Pubblicato: 2 Luglio 2007 OOk Grazie Mauro!! ok ragazzi..troppo difficile..lassamo sta XD...sembrava facile ma è difficile ...vabè grazie..lo stesso!!! Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 2 Luglio 2007 Autore Segnalazione Share Pubblicato: 2 Luglio 2007 Non è difficile, però devi avere chiari alcuni concetti prima di iniziare (variabili, array, funzioni, librerie, ecc...)... Link to comment Condividi su altri siti More sharing options...
kchristian91 Pubblicato: 3 Luglio 2007 Segnalazione Share Pubblicato: 3 Luglio 2007 ecco...è quello che o nn ho..:D Ma sapete Se A Scuola Di Elettronica Si Fanno Un Pò Di Queste Cose..?? Vabè..Cmq Magari Mi Butto sul C++ Che Mia Sorella Lo Fa A Scuola . Per Usare Mschell Mi Servirebbe Proprio Una Guida Di Fanco A Me hihihi Link to comment Condividi su altri siti More sharing options...
dokkis Pubblicato: 3 Luglio 2007 Segnalazione Share Pubblicato: 3 Luglio 2007 (modificato) ecco...è quello che o nn ho..:DMa sapete Se A Scuola Di Elettronica Si Fanno Un Pò Di Queste Cose..?? Vabè..Cmq Magari Mi Butto sul C++ Che Mia Sorella Lo Fa A Scuola . Per Usare Mschell Mi Servirebbe Proprio Una Guida Di Fanco A Me hihihi se mshell ti sembra difficile... abbandona l'idea di iniziare con c++... soprattutto in symbian, programmare in c++ non è per niente facile se devi iniziare.. inoltre, l'informatica nelle scuole italiane, se non fai una scuola specifica per programmatori, è abbastanza inutile, o meglio è ad un semplice livello basilare... Modificato 3 Luglio 2007 da dokkis Link to comment Condividi su altri siti More sharing options...
xMetallicax Pubblicato: 3 Luglio 2007 Segnalazione Share Pubblicato: 3 Luglio 2007 se mshell ti sembra difficile... abbandona l'idea di iniziare con c++... soprattutto in symbian, programmare in c++ non è per niente facile se devi iniziare..inoltre, l'informatica nelle scuole italiane, se non fai una scuola specifica per programmatori, è abbastanza inutile, o meglio è ad un semplice livello basilare... quoto in pieno, anche se non so niente di c++. Ma secondo me l'informatica la impari meglio se lo fai da solo,senza andare in scuole di scarso livello che fregano un sacco di soldi e che ti insegnano quelle quattro cacate: come si usa word,excel, cos'è windows... Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 12 Luglio 2007 Autore Segnalazione Share Pubblicato: 12 Luglio 2007 [OT] La UserBar di mShell [/OT] Link to comment Condividi su altri siti More sharing options...
Il.Socio Pubblicato: 12 Luglio 2007 Segnalazione Share Pubblicato: 12 Luglio 2007 uohoho... Bella la userbar!!! Link to comment Condividi su altri siti More sharing options...
Tabris_ Pubblicato: 16 Ottobre 2007 Segnalazione Share Pubblicato: 16 Ottobre 2007 ragazzi ma è possibile scrivere script mshell su pc e complilarli su pc prima di provarli sul telefonino? Link to comment Condividi su altri siti More sharing options...
dokkis Pubblicato: 16 Ottobre 2007 Segnalazione Share Pubblicato: 16 Ottobre 2007 ragazzi ma è possibile scrivere script mshell su pc e complilarli su pc prima di provarli sul telefonino? no differentemente da python nn c'è un emulatore pc per gli script mshell! ciao Link to comment Condividi su altri siti More sharing options...
Tabris_ Pubblicato: 17 Ottobre 2007 Segnalazione Share Pubblicato: 17 Ottobre 2007 grazie per la risposta dokki..un altra cosa, è possibile converitre i .m in file autoinstallanti .sis? grazie Tabris_ Link to comment Condividi su altri siti More sharing options...
xMetallicax Pubblicato: 17 Ottobre 2007 Segnalazione Share Pubblicato: 17 Ottobre 2007 non è una conversione, ma puoi creare un pacchetto di installazione con dentro uno script .m Link to comment Condividi su altri siti More sharing options...
masmil1988 Pubblicato: 19 Ottobre 2007 Autore Segnalazione Share Pubblicato: 19 Ottobre 2007 Purtroppo ancora sul fronte mShell non è possibile "compilare" i programmi... l'unico modo per avere un'iconcina è il caro metodo di Dokkis, che simula la pressione dei tasti necessari per avviare lo script corrispondente all'applicazione... Che funziona benissimo, ma non è proprio un modo pulito... [OT]Scusate la consistente assenza dal forum, ma finchè non avrò l'adsl nella casa a Palermo mi potrò far vedere solo venerdì, sabato e domenica (e mica tanto visto che ho anche altro da fare)...[/OT] Link to comment Condividi su altri siti More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Accedi Ora