Maddaaaiiii... adesso non voglio fare esageratamente lo sborrone, ma quello che descrivete come "dramma drammatico" per me è routine quotidiana, banalità.
Gestisco l'invio di avvisi a centinaia di migliaia di indirizzi
- 02/20605012-380/10615789 L. 380/0642529983,
- 79867563195 Fiona 7095/2302538 VI. 0432/2589569
Cosa capirà il programmello?
Saprà distinguere i telefoni fissi dai cellulari?
Come farà a capire quale parte del numero è prefisso e quale numero di telefono?
Dove mancano i prefissi corretti, come farà ad attribuirli automaticamente?
Ecc. ecc.
Capirà perfettamente tutto, distinguerà banalmente i cellulari (iniziano per 3, così per inciso, se non ci hai mai pensato, ed hanno due lunghezze possibili) dai fissi.
Quello che non si può fare è porre il prefisso se esso manca, e non c'è l'indicazione del prefisso.
Tizio tel 777123 non potrà diventare magicamente 02777123 se non c'è da qualche parte l'indicazione che sta a milano. Se invece c'è => magicamente può apparire anche il prefisso.
questa "06/1234567-340/0855887" di un "Contatto" italiano è facile stabilire che si tratti di un numero fisso di Roma e di un cellulare, ma se quella stringa cambia in "06/1234567-340/0855887 K 380/612653072" cosa succede?
Succede che le interpreti correttamente.
Quale sarebbe la difficoltà dell'esempio che hai messo?
Nessuna.
Non servono librerie, non servono espressioni regolari, non serve sti.zzzi, basta un po' di kung-fu di manipolazione stringhe, un riconoscitore ad hoc che affini progressivamente man mano che elimini i casi già riconosciuti (essendo l'insieme finito è ovviamente ricorsivo, quindi banale in ultima istanza).
Insomma routine.
Almeno per me.
Comunque tranquillo, si vede che i "magici consulenti Oracle" avevano ragione, non si può fare
Aggiungo: ovviamente non con Access, mi riferisco in concreto a un programma Delphi specifico (Pascal ha una gestione delle stringhe "umana", quindi niente C o C++ o Java), adatto proprio al tuo caso, e senza alcuna velleità di universalità o chissà che.
Un classico esempio di intelligenza artificiale (coi paroloni di oggi), in realtà nulla più che "artigianato informatico professionale"
Conclusione: qualsiasi cosa possa fare un "umano", nel "sistemare" il tuo elenco di numeri di telefono, può benissimo farlo un programmello.
Quello che l' "umano" non potrebbe fare (inventarsi prefissi assenti, distinguere casi in cui non ci sono possibilità di discriminazione) non lo può fare neppure il programmello.
Avendo un numero finito di casi ed essendo il database fisso è ovvio che la situazione è banalmente risolvibile.
Ti basta enumerarli, uno per uno, tanti o pochi che siano.
Il "dramma" nasce nel momento in cui hai un archivio DINAMICO, dove possono "saltar fuori" nuovi casi, non previsti, e lì la questione si fa difficile, talvolta addirittura impossibile.
Ma con un archivio statico?
Banale.