CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: gianpassa con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: bluemask con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: gianpassa con ben 35 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 10 su 10
Discussione:

[Android] Class to String

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Jun 2011
    Messaggi
    23

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    [Android] Class to String

    Salve, devo trasformare una class, in un una stringa concatenata. è possibile? esiste una funzione che lo fa in automatico. grazie

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Jun 2013
    Messaggi
    30

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    vuoi il nome di una classe, ho capito bene? in questo caso ti posto del codice da esempio, provalo e scegli cosa ti serve di più




    Se invece nella tua domanda intendi trasformare l'istanza di una classe in una stringa significativa allora devi fare l'override del metodo toString() della classe Object

  4. #3
    Baby Droid


    Registrato dal
    Jun 2011
    Messaggi
    23

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ciao, grazie per avermi risposto.
    Allora devo trasformare questa classe



    in una stringa, da poter inserire un una variabile, che poi mi servirà per essere inviata.

  5. #4
    Baby Droid


    Registrato dal
    Jun 2013
    Messaggi
    30

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito




    poi dal main o da dove ti pare


    entrambe le stampe saranno uguali, prova e vedi se è quello che cerchi.

  6. #5
    Baby Droid


    Registrato dal
    Jun 2011
    Messaggi
    23

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    ciao, mi da errore su questa linea


    e non capisco il perchè, dovrebbe essere giusto.

    ora mi spiego un po meglio cosa devo fare, ora che ho i file.

    Devo trasformare questa struttura C

    codice:
    /*
    *libreria per la definizione della struttura messaggio
    */
    #ifndef MSG_H
    #define MSG_H
    
    #define MSG_LOGIN 'L'	//LOGIN
    #define MSG_REGLOG 'R'	//Register and Login
    #define MSG_OK 'O'	//OK
    #define MSG_ERROR 'E'	//Error
    #define MSG_SINGLE 'S'	//Message to single user
    #define MSG_BRDCAST 'B'	//Message broadcasted
    #define MSG_LIST 'I' 	//List
    #define MSG_LOGOUT 'X' 	//Logout
    
    typedef struct {
    	char type ; 			// message type
    	char * sender ; 		// message sender
    	char * receiver ; 		// message receiver
    	unsigned int msglen ;		// message length
    	char * msg ; 			// message buffer
    } msg_t;
    
    #endif
    in una classe Java.

    Sto realizzando un applicazione android che deve comunicare con un programma client-server già esistente. ti posto il codice della funzione C per leggere e scrivere i messaggi. perchè ho alcuni dubbi che possa essere letta una stringa normale, sono un pò arrugginito di C.

    codice:
    /*
    * libreria per la realizzazione delle funzioni read_msg e write_msg
    * necessarie per lo scambio di struct msg_t attraverso il socket
    */
    #ifndef RW_H
    #define RW_H 
    
    #include "msg.h"	
    
    int read_msg(msg_t *M,int csd){
    /*  legge il messaggio dal socket, 
    	ogni campo ricevuto separatamente viene memorizzato nella struttura M*/
    
    	char num[4];
    
    	/*read message type*/
    	if(read( csd, &(M->type) , sizeof(char)) < 0) {
    		perror("ERROR: reading msg type: ");
    		return 1;
    	}
    
    	/*read sender*/
    	if(read( csd, M->sender , sizeof(char)*256) < 0) {
    		perror("ERROR: reading msg sender: ");
    		return 1;
    	}
    
    	/*read receiver*/
    	if(read( csd, M->receiver , sizeof(char)*256) < 0) {
    		perror("ERROR: reading msg receiver: ");
    		return 1;
    	}
    	/*read message len*/
    	if(read( csd, num , sizeof(char)*4) < 0) {
    		perror("ERROR: reading message len: ");
    		return 1;
    	}
    
    	/* converte int in char */
    	M->msglen=0;
    	M->msglen=num[0]&0xFF; 
    	M->msglen=M->msglen<<8;
    	M->msglen= M->msglen | (num[1] & 0xFF); 
    	M->msglen=M->msglen<<8;
    	M->msglen= M->msglen | (num[2] & 0xFF); 
    	M->msglen=M->msglen<<8;
    	M->msglen= M->msglen | (num[3] & 0xFF);
    			
    	/*read message*/
    	if(read( csd, M->msg , sizeof(char) * M->msglen) < 0) {
    		perror("ERROR: reading msg message: ");
    		return 1;
    	}
    	return 0;
    }
    
    int write_msg(msg_t *M, int sk){
    /*  invia un messaggio attraverso la socket, 
    	ogni campo memorizzato in M viene inviato separatamente tramite le funzioni write */
    	char num[4];
    
    	/*write type of message*/
    	if(write( sk, &(M->type), sizeof(char)) < 0){
    		perror("ERROR: writing message: ");
    		return 1;
    	}
    	/*write sender*/
    	if(write( sk, M->sender, sizeof(char)*256) < 0){
    		perror("ERROR: writing message: ");
    		return 1;
    	}
    	/*write receiver */
    	if(write( sk, M->receiver, sizeof(char)*256) < 0){
    		perror("ERROR: writing message: ");
    		return 1;
    	}
    
    	/*write msglen*/
    	num[0]=(M->msglen>>24)&0xFF;
    	num[1]=(M->msglen>>16)&0xFF;
    	num[2]=(M->msglen>>8)&0xFF;
    	num[3]=M->msglen & 0xFF;
    	if(write( sk, num, sizeof(char)*4) < 0){
    		perror("ERROR: writing message: ");
    		return 1;
    	}
    	/*write message*/
    	if(write( sk , M->msg , sizeof(char)*M->msglen) < 0){
    		perror("ERROR: writing message: ");
    		return 1;
    	}
    
    	return 0;
    }
    
    #endif
    Non capisco se il messaggio che legge o riceve lo vuole in char quindi va bene la String che sto cercando di realizzare, oppure trasforma tutto in un integer.

    Riuscite ad aiutarmi? grazie

  7. #6
    Baby Droid


    Registrato dal
    Jun 2013
    Messaggi
    30

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    ciao, mi da errore su questa linea
    Msg msg1 = new Msg();
    e non capisco il perchè, dovrebbe essere giusto.
    Io l'ho chiamata Msg la classe, tu msg. Ti stai perdendo in un bicchiede d'acqua, forse dovresti vedere un po qualche manuale di programmazione base

  8. #7
    Baby Droid


    Registrato dal
    Jun 2011
    Messaggi
    23

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da Ivano92 Visualizza il messaggio
    Io l'ho chiamata Msg la classe, tu msg. Ti stai perdendo in un bicchiede d'acqua, forse dovresti vedere un po qualche manuale di programmazione base
    Il problema era che la classe



    andava dichiarata


    Esiste anche il modo di fare il contrario, passare dalla Stringa agli oggetti della classe?

  9. #8
    Baby Droid


    Registrato dal
    Jun 2013
    Messaggi
    30

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    wut? perché la devi dichiarare come statica?


    comunque per fare il contrario puoi costruire le istanze così

  10. #9
    Baby Droid


    Registrato dal
    Jun 2011
    Messaggi
    23

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Quote Originariamente inviato da Ivano92 Visualizza il messaggio
    wut? perché la devi dichiarare come statica?
    non ne ho idea. eclipse mi fa continuare solo se la dichiaro statica.

    la stringa che ho fatto io, è senza delimitatore, perchè per il mio progetto mi serve così.
    Se mi arriva una stringa senza delimitatori non ce modo di scomporla?

  11. #10
    Baby Droid


    Registrato dal
    Jun 2013
    Messaggi
    30

    Ringraziamenti
    3
    Ringraziato 1 volta in 1 Post
    Predefinito

    se esclipse ti dice così avrai fatto qualche casino.

    Il delimitatore ti fa capire come separare le stringhe, esempio: se hai una sequenza di caratteri di una frase come separi le parole? in base agli spazi. Se hai tutto attaccato senza spazi come le separi? (tip: puoi pure usare lo spazio come delimitatore al posto del carattere _, basta che poi lo spazio non lo usi nelle sotto stringhe)

    (potresti pure provare a rendere l'oggetto serializzabile e mandare quello al posto della stringa)

    ma ti ripeto, secondo me ti mancano le basi perché queste cose sono terra terra.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy