comparazione tra numeri

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
jumoonp
GMI VIP
Messaggi: 3292
Iscritto il: 13/01/2008, 20:59
Contatta:

comparazione tra numeri

Messaggio da jumoonp »

TOC TOC....c'è nessuno?
beh, se c'è qualcuno ancora in vita qui avrei qualche domanda :)

ho due file.txt dove ci sono una serie di numeri in un unica stringa staccati da due spazi l'uno dall'altro...
il valore dei numeri variano da 2 a 600 circa, ed in un file ce ne possono essere due o tre come ce ne possono essere una dozzina, insomma variano....
devo fare una comparazione tra i due file, cioè devo sapere se condividono un numero uguale, (non sto parlando di un solo numero all'interno di una cifra , ma di tutta la cifra uguale) ...
quindi , per esempio, in un file ci possono essere solo due cifre ed nell'altro file una dozzina, io devo sapere qual'è la cifra in comune e se ce n'è più di una in comune...
come posso procedere?
Spoiler
Gabriele Dell'Otto e Lee bermejo

Immagine

Avatar utente
civic71
GMI Advanced
Messaggi: 2210
Iscritto il: 23/10/2003, 17:31
Specialità: Risotto con zucchine
Uso: GM:Studio 1.4 Pro
Località: Jesolo (venezia)
Contatta:

Re: comparazione tra numeri

Messaggio da civic71 »

Un esempio di stringhe potrebbe essere così ?
50 400 255 77
33 65 99 244 356


oppure potrebbe essere anche così ?
50-400-255-77
33-65-99-244-356

Avatar utente
jumoonp
GMI VIP
Messaggi: 3292
Iscritto il: 13/01/2008, 20:59
Contatta:

Re: comparazione tra numeri

Messaggio da jumoonp »

Il primo esempio che hai fatto, Civic...
Le cifre sono separate da due spazi, senza alcun -
Ma volendo, se e' per facilitare, ci si puo' mettere anche la barretta tra le cifre....
Spoiler
Gabriele Dell'Otto e Lee bermejo

Immagine

Avatar utente
civic71
GMI Advanced
Messaggi: 2210
Iscritto il: 23/10/2003, 17:31
Specialità: Risotto con zucchine
Uso: GM:Studio 1.4 Pro
Località: Jesolo (venezia)
Contatta:

Re: comparazione tra numeri

Messaggio da civic71 »

Si sarebbe più semplice ma ancor di più io preferisco andando sempre a capo :

/* nuova stringa */
50
400
255
77
/* nuova stringa */
33
65
99
244
356


In questo modo quando leggo il contenuto del file.txt , assegno ad una variabile arry una riga alla volta :

Codice: Seleziona tutto

file = file_text_open_read (working_directory + "\nomeTuoFile.txt");
       
       for(i = 0; i < 100; i + = 1){
                                   cifra[i] = file_text_read_string(file);
                                    file_text_readln(file);                                     
                                  } 
       file_text_close(file);

Ottenendo una cosa del genere :
cifra[0]="/* nuova stringa */";
cifra[1]="50";
cifra[2]="400";
cifra[3] ecc ...


Poi tramite un for e le funzioni della stringa potrai controllare ogni cifra.

var a;

for(a = 1; a < 100; a + = 1){
for(i = 1; i < 100; i + = 1){
if ((string(cifra[a]) == string(cifra)) && (string(cifra[a]) != string("/* nuova stringa */"))) { ecc... }
}
}


Logicamente il codice sopra non è testato ne completo ma è solo una bozza con cui iniziare .
Tipo aggiungerei anche " while (!file_text_eof(file)) " con il quale anche ottenere il numero di cifre contenuto nel file ( che qui è impostato a 100 ) ed altro che non ho voglia di aggiungere .


info files :http://docs.yoyogames.com/source/dadios ... index.html
info stringa : http://docs.yoyogames.com/source/dadios ... index.html

Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: comparazione tra numeri

Messaggio da Xxshark888xX »

Ma cosi' se ha molte stringhe di numeri, il processo di verifcazione dei numeri che combacino sarebbe lentissimo.

Meglio utilizzare una ds_list con la funzione ds_list_find_index (o value)

Qualcosa del genere:

Codice: Seleziona tutto

///xs8_fastStringComparision(file_x, file_y);

var s_x, s_y, file_x, file_y, i, j,
    output;

s_x = ds_list_create();
s_y = ds_list_create();

file_x = file_text_open_read(argument0);
file_y = file_text_open_read(argument1);

output = "";

while (!file_text_eof(file_x)) {
    ds_list_add(s_x, file_text_read_string(file_x));
    file_text_readln(file_x);
}
while (!file_text_eof(file_y)) {
    ds_list_add(s_y, file_text_read_string(file_y));
    file_text_readln(file_y);
}

if (ds_list_size(s_x) > ds_list_size(s_y)) {
    for (i = 0; i < ds_list_size(s_x); i++) {
        for (j = 0; j < ds_list_size(s_y); j++) {
            if (ds_list_find_value(s_x, i) == ds_list_find_value(s_y, j)) {
                output += "#" + ds_list_find_value(s_x, i);
            }
        }
    }
} else {
    for (i = 0; i < ds_list_size(s_y); i++) {
        for (j = 0; j < ds_list_size(s_x); j++) {
            if (ds_list_find_value(s_y, i) == ds_list_find_value(s_x, j)) {
                output += "#" + ds_list_find_value(s_y, i);
            }
        }
    }
}

file_text_close(file_x);
file_text_close(file_y);
ds_list_destroy(s_x);
ds_list_destroy(s_y);
return output;
Ti basta scrivere una sequenza di numeri, e come divisore utilizzi l'andare a capo. Esempio:

Codice: Seleziona tutto

23
443
56
3553
63452
2
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Avatar utente
jumoonp
GMI VIP
Messaggi: 3292
Iscritto il: 13/01/2008, 20:59
Contatta:

Re: comparazione tra numeri

Messaggio da jumoonp »

Grazie ad entrambi per l'aiuto, vedrò di adattare il code al meglio ;)
Spoiler
Gabriele Dell'Otto e Lee bermejo

Immagine

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: comparazione tra numeri

Messaggio da Jak »

jumoonp ha scritto:TOC TOC....c'è nessuno?
beh, se c'è qualcuno ancora in vita qui avrei qualche domanda :)
Immagine
Immagine

Capita spesso di averne anche di più, e parliamo di gente online contemporaneamente. :roll:
Anche se potrebbe non sembrare a vedere il forum GMI è tutt'altro che morta.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
SP Games
Membro
Messaggi: 241
Iscritto il: 27/06/2014, 11:21
Specialità: Programmer
Uso: GM:Studio 1.4 Pro
Contatta:

Re: comparazione tra numeri

Messaggio da SP Games »

Colgo il post di Jak per un piccolo OT sulla chat.
Vero che è molto positivo sia cosi popolata e attiva, ma lo stato moribondo del forum è comunque un gran peccato.
Il forum, rispetto alla chat ha il vantaggio di essere perenne, le nozioni espresse rimangono a futura memoria e non è cosa da poco.

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: comparazione tra numeri

Messaggio da Jak »

SP Games ha scritto:Colgo il post di Jak per un piccolo OT sulla chat.
Vero che è molto positivo sia cosi popolata e attiva, ma lo stato moribondo del forum è comunque un gran peccato.
Il forum, rispetto alla chat ha il vantaggio di essere perenne, le nozioni espresse rimangono a futura memoria e non è cosa da poco.
Quanti bisognosi hanno usato il tasto cerca finora?
Il forum ha senso per le domande "offline" ossia quelle esclusivamente relegate a risposte dettagliate, lente e precise ed alle quali si può rispondere anche dopo lunghi periodi di tempo. Come lo possono essere per problemi di programmazione o l'esposizione di un gioco che guarda caso sono le categorie più attive.
Per tutto il resto, cè masterchat.

Per quanto io personalmente continui ad amarli cè poco da fare, purtroppo il tempo dei forum è finito e si è molto più facilmente e quasi obbligatoriamente in contatto con social e chat. Il fatto che il forum sia ancora utilizzato è già tanto.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
jumoonp
GMI VIP
Messaggi: 3292
Iscritto il: 13/01/2008, 20:59
Contatta:

Re: comparazione tra numeri

Messaggio da jumoonp »

Personalmente preferisco il forum alla chat e un amministratore più attivo possibilmente....
l'agonia del forum ne rispecchia la poca voglia e la poca passione...te lo dissi e te lo ripeto, senza offesa, lascia la palla a chi ne è più motivato
Spoiler
Gabriele Dell'Otto e Lee bermejo

Immagine

Avatar utente
Xxshark888xX
Membro d'elite
Messaggi: 1497
Iscritto il: 30/05/2012, 19:17
Specialità: Un poco di tutto
Uso: GM:Studio 1.4 Pro
Località: Earth
Contatta:

Re: comparazione tra numeri

Messaggio da Xxshark888xX »

jumoonp ha scritto:Personalmente preferisco il forum alla chat e un amministratore più attivo possibilmente....
l'agonia del forum ne rispecchia la poca voglia e la poca passione...te lo dissi e te lo ripeto, senza offesa, lascia la palla a chi ne è più motivato
Io sono pienamente d'accordo con te!
Contatti
Steam
Facebook

Gif
Spoiler
Immagine
Immagine
Immagine
Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 148 ospiti