Leggere stringa testo DA <-> A

Come utilizzare i campi. Differenze tra campi calcolati, testo, numero, multipli, contenitori.

Moderatore: Moderatori

Rispondi
Avatar utente
bytefdrfmpro
Messaggi: 30
Iscritto il: mercoledì 19 ottobre 2016, 11:33

Leggere stringa testo DA <-> A

Messaggio da bytefdrfmpro » venerdì 19 febbraio 2021, 11:51

Devo individuare dalla Tessera Sanitaria il Cognome e Nome. Entrambi possono essere formati da una o più parole (Es."De Dilectis Andrea Maria") Conosco il N°Byte di partenza Cogn/Nome, il N°Byte intermedio tra Cogn/Nome ed il N°Byte finale del Cogn./Nome.
Con questi 3 elementi come faccio ad impostare il Cognome da(X a Y) ed il Nome da(Y a Z) ? FileMaker è ricco di funzioni Sinistra/Mezzo/Destra ma manca un semplice da TOT a TOT.
ByteFDR

Avatar utente
fabio.beri
Messaggi: 1696
Iscritto il: sabato 4 ottobre 2014, 16:24

Re: Leggere stringa testo DA <-> A

Messaggio da fabio.beri » venerdì 19 febbraio 2021, 14:21

Buongiorno. Se si conosce la posizione di divisione tra il cognome e il nome, si può fare, altrimenti non si può fare. Tutto qui.

Se si conoscesse, la funzione da utilizzare è mezzo[].

Io però non ho capito cosa significa quando dice che conosce il n* di byte intermedio.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18

Omnia Studio

-----------------------------------------
http://www.omniagest.it

Avatar utente
bytefdrfmpro
Messaggi: 30
Iscritto il: mercoledì 19 ottobre 2016, 11:33

Re: Leggere stringa testo DA <-> A

Messaggio da bytefdrfmpro » venerdì 19 febbraio 2021, 17:31

Grazie innanzitutto per la risposta. Mi spiego meglio: Della stringa letta conosco il byte di partenza (il 18°), conosco il byte di posizione dove termina il Cognome ed inizia il Nome (es.28°) avendo scritto un "*" e conosco il byte di termine Nome (es.39°) avendo un carattere "_"

Ho usato questa Calcolo per il cognome:
Mezzo ( Tessera Sanitaria::Tessera ; 18 ;
Posizione (
CercaeSost (
Mezzo ( Tessera Sanitaria::Tessera ; 18 ; 60 );
" ";
"*" );

"*";1;1)
-1)

Ma per il Nome?

Ecco un esempio di stringa letta:
%AAABBB45H21HXXXZDE DILECTIS*ANDREA MARIA_
ò80380001500155754358_

Mi chiedo perché FileMaker non abbia una funzione testo che legga Dal Byte <-> Al Byte
ByteFDR

Meccanico1991
Messaggi: 14
Iscritto il: venerdì 11 dicembre 2020, 8:32
Versione FileMaker: 14
Sistema operativo: OSX

Re: Leggere stringa testo DA <-> A

Messaggio da Meccanico1991 » sabato 20 febbraio 2021, 21:54

Ecco un esempio di stringa letta:
%AAABBB45H21HXXXZDE DILECTIS*ANDREA MARIA_
ò80380001500155754358_
secondo me il problema sta nel fatto che nel tuo esempio hai due caratteri "_", uno al termine del nome e l'altro alla fine del testo :?

Ciao

Avatar utente
bytefdrfmpro
Messaggi: 30
Iscritto il: mercoledì 19 ottobre 2016, 11:33

Re: Leggere stringa testo DA <-> A

Messaggio da bytefdrfmpro » sabato 20 febbraio 2021, 22:44

Questo é il formato della banda magnetica Tessera Sanitaria ma credo che con la “ricorrenza” si possa individuare solo il primo _
Quindi: Sò che il Cognome inizia al 18° byte, il Cognome termina al byte * ( a prescindere dal numero di parole composto es. Rossi oppure De Rossi), il Nome termina al primo _ (a prescindere dal numero di parole composto es. Andrea oppure Andrea Maria)
Dovrei ottenere i due Campi Cognome e Nome (da 18 all’Asterisco) e (da Asterisco+1 a Underscore)
ByteFDR

Meccanico1991
Messaggi: 14
Iscritto il: venerdì 11 dicembre 2020, 8:32
Versione FileMaker: 14
Sistema operativo: OSX

Re: Leggere stringa testo DA <-> A

Messaggio da Meccanico1991 » domenica 21 febbraio 2021, 21:44

Fondamentale è la ricerca della posizione dell'asterisco e dell'underscore... per cui dopo un po' di tentativi/accrocchi ti allego il risultato ;)

Ciao
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.

Avatar utente
bytefdrfmpro
Messaggi: 30
Iscritto il: mercoledì 19 ottobre 2016, 11:33

Re: Leggere stringa testo DA <-> A

Messaggio da bytefdrfmpro » lunedì 22 febbraio 2021, 9:10

Fantastico, un sentito Grazie !!
Rimango dell'idea che FileMaker dovrebbe implementare una Funzione Testo un pò più semplice che, senza storture mentali (tipo:Mezzo,Destra,Sinistra,ParoleaDestra,ParoleinMezzo,ParoleaDestra), legga una porzione di stringa dal byte XXXX al byte YYYY.
Comunque grato per il tempo profuso.Spero possa esser d'aiuto ad altri membri della comunità.
ByteFDR

Rispondi