Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: 1172005= id+mese+anno

  1. #1
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506

    1172005= id+mese+anno

    Salve a tutti. Più che asp vero e proprio credo sia una questione di logica; ma proprio non riesco a venirne a capo.

    Ho una serie di record, con all'interno un numero del tipo: 5572005; questo numero è stato inserito combinando "id"+"mese"+"anno" (55+7+2005).

    Ora ho la necessità di ricavarmi l'id da tale numero, ma prorpio non riesco a trovar euna funzione adeguata.
    Come posso fare?


    NB
    Id può essere di 1, 10, 100 o 1000 cifre.
    Mese può essere di 1 o 2 cifre
    Anno ovviamente è sempre di quattro cifre.

  2. #2
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506

    Un vero rompicapo

    questo è ciò che ho provato, ma ha il limite che non distingue, a parità di numero di caratteri del numero da scomporre, se si tratta di un id a 2 cifre e mese a 1 cifra piuttosto che viceversa.

    numero= cifra da scomporre (esempio 5522005)

    inizio=Left(numero,Len(numero)-4)
    if len(inizio)=6 then
    risultato=Left(inizio,Len(inizio)-6)
    else
    risultato=Left(inizio,Len(inizio)-5)
    end if

    risultato deve essere l'id

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    residenza
    Milano
    Messaggi
    188

    Risposta solo di logica, non di programmazione.

    Io partirei da destra, visto che li' la cosa è sicura.

    Quindi prenderei la stringa e leverei i primi 4 caratteri da destra (è sicuramente l'anno):
    5522005 diventa 552

    Adesso bisogna capire qual'e' il mese e quale l'id.
    Allora prenderei i soli ultimi due (sempre da destra): 52:
    - se maggiore di 12 il problema è risolto, prendi solo l'ultimo (in questo caso 2 poichè 52 non puo' essere un mese) quindi hai finalmente il confine ID-DATA ovvero gli ultimi 5 a destra sono di data, riprendi la stringa iniziale e levi i 5 a destra
    - se invece il numero è inferiore o uguale a 12 siamo fermi.
    Ma tu come umano, in questo caso, come riconosci l'id dal mese?
    C'e' qualche altra logica?

  4. #4
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Esatto. E' +/- il ragionamento che ho fatto io.
    La tua domanda finale è retorica? cioè mi indica che non c'è soluzione nel distinguere in 12 id o data?
    Scusa ma sono cotto e temo che tra gli infiniti ragionamenti che ho fatto, non distinguo più neanche le cose più ovvie.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2000
    residenza
    Milano
    Messaggi
    188
    No no, la mia domanda non è retorica, è reale!

    Se io ti do', ad esempio 112, tu -umano- mi sai dire se l'id è 1 e mese 12 oppure se l'id è 11 ed il mese 2?

    Se si, che ragionamento fai?

    Se tu, umano, non puoi risalire da quel numero ai due valori, allora non penso ci sia soluzione.
    Sarebbe come dire: come faccio a fare un programma che mi faccia uscire con Vanessa Incontrada? Se tu (umano) non hai la soluzione, non puoi creare un programma che te la trovi lui.

  6. #6
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Io, umano, non posso in effetti distinguere in 112 le due cose. C'hai proprio ragione, come temevo; non esiste una soluzione.

    Forse ho trovato un escamotage, analizzando i dati che vengono fuori, ma del tutto estraneo al ragionamento logico che abbiamo fatto.

    So che l'id può essere al massimo 1200;
    Ho notato che tra i vari id ricavati con il ragionamento che mi hai suggerito trovo ad esempio 1253; è evidente, in tal caso che si tratta di id=125. Quindi tolgo l'ultimo carattere a questi id.

    Questo controllo su tutti gli id, secondo te è sufficiente per arginare completamente il problema? o mi sfugge qualcosa?

  7. #7
    se l'id al massimo puo' essere 1200, il 112 dell'esempio ci casca in pieno. chi/cosa scrive quell'id? non e' possibile cambiarlo? nel record non hai altri dati che possano aiutarti?

  8. #8
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Hai perfettamente ragione. Purtroppo non ho campi nel record che possono essere d'aiuto; forse un altro dato può essere d'aiuto; non esistono id da 1 a 10; quindi l'id è di almeno due cifre (diversamente da quanto detto sopra).
    Forse e può essere d'aiuto.

    Nell'esempio di 112 id non puù essere 1 e neanche 112 quindi: l'id=11 e il mese=2.

    Scusate ma sono davvero cotto.

    PS
    purtroppo non ho alternative o campi d'aiuto; ho questa serie di dati da scompore.

  9. #9
    se parti da 11 il caso del 112 e' risolto (e' sicuramente febbraio). ci ricaschi pero' con 1112... e' 11-12 o 111-2 ? ma chi e' che crea questi id?

  10. #10
    Utente di HTML.it L'avatar di gim
    Registrato dal
    Oct 2000
    Messaggi
    506
    Acc. Guarda ho appena modificato con il tuo stesso ragionamento.
    Condividi quindi che il problema può risiedere esclusivamente per gli id che vanno da 1000 a 1200?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.