Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333

    [Access] frammentare una stringa separata da "\"

    Data una tabella

    con campo unico formato Testo

    Il campo Key ( al momento ) non esiste,
    ma ho la possibilita di aggiungere i campi necessari
    ( oppure di rendere Key quell'unico campo )


    che contiene "alla rinfusa" un albero di cartelle e file
    Liv01A\Liv02A
    Liv01A\Liv02A\Fil03ddd.doc
    Liv01A\Liv02A\Fil03ttt.txt
    Liv01A\Liv02A\Liv03A
    Liv01A\Liv02A\Liv03A\Fil04eee.xls
    Liv01A\Liv02A\Liv03A\Liv04A
    Liv01A\Liv02A\Liv03A\Liv04A\Fil05ttt.txt
    Liv01A\Liv02A\Liv03A\Liv04A\Liv05A
    Liv01A\Liv02A\Liv03A\Liv04A\Liv05A\Fil06mmm.mdb
    Liv01A\Liv02A\Liv03A\Liv04A\Liv05A\Liv06A
    Liv01A\Liv02A\Liv03A\Liv04A\Liv05A\Liv06A\Fil07eee .xls
    Liv01A\Liv02A\Liv03A\Liv04A\Liv05B
    Liv01A\Liv02A\Liv03A\Liv04B
    Liv01A\Liv02A\Liv03B
    Liv01A\Liv02B
    Liv01A\Liv02C
    Liv01A\Fil02dd.doc
    Liv01A\Fil02ee.xls
    quello esposto è un esempio semplificato.
    di cui posso dire che:

    1°) Tutti i record iniziano con una parte fissa ( Liv01A ) che è la cartella Radice della scannerizzazione
    2°) il separatore e la "\" ( questo era inutile dirlo )
    3°) chiaramente i nomi delle cartelle non sono regolari come nell'esempio
    quindi la conta dei caratteri non vale



    __________________________________________________ _____________
    __________________________________________________ _____________
    __________________________________________________ _____________

    Devo arrivare a questo risultato
    __ Creando altre 3 tabelle
    __ ( oppure facendo 3 viste ? )

    Tutto quello che precede la 1° "\" ___ RAGGRUPPATO

    Liv01A
    Tutto quello che precede la 2° "\" ___ RAGGRUPPATO

    Liv01A\Liv02A
    Liv01A\Liv02B
    Liv01A\Liv02C
    Liv01A\Fil02dd.doc
    Liv01A\Fil02ee.xls
    Tutto quello che precede la 3° "\" ___ RAGGRUPPATO

    Liv01A\Liv02A
    Liv01A\Liv02A\Fil03ddd.doc
    Liv01A\Liv02A\Fil03ttt.txt
    Liv01A\Liv02A\Liv03A
    Liv01A\Liv02A\Liv03B
    Liv01A\Liv02B
    Liv01A\Liv02C
    Liv01A\Fil02dd.doc
    Liv01A\Fil02ee.xls

    Spero di essere stato chiaro

    NB: Ho postato per Access ma potrei usare anche SQLServer

    Vorrei "evitare" in questa fase preliminare il problema
    che Access gestisce nei campi testo fino a 255 caratteri
    mentre nella realta un albero di directory li supera
    tranquillamente.



    NB: Certe "signorine" come nome dei file di Word pretendono di metterci
    un "riassunto" del testo del file PUNTEGGIATURA INCLUSA




    Grazie

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Non ho capito benissimo quello che devi fare ma provo a darti un suggerimento (per SQL Server)

    Hai pensato di usare la funzione "charindex" ? (unita poi ad esempio alle varie left, substring,etc)

    Charindex ti permette di trovare la posizione (il risultato è un numero) in cui si trova un certo carattere (o una parola) all'interno di una stringa. Se lo unisci, ad esempio con Left trovi facilmente il tuo primo Liv01A

    LEFT ('Liv01A\Liv02A\Fil03ddd.doc',CHARINDEX('Liv01A\Li v02A\Fil03ddd.doc','\',1)-1) = Liv01A

    (ho messo le stringe come statiche, potrai se vuoi mettere delle varaibili)

    E così via per il secondo separatore...

    O non ho capito niente ?

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da comas17
    O non ho capito niente ?
    Invece hai capito,
    Lo ho gia provato e funziona bene

    __________________________________

    ha il problema di essere macchinoso,

    __________________________________

    I miei livelli non saranno 3 come nell'esempio
    ma ritengo una decina
    ____________________________________

    Non mi sto preoccupando per scrivere la vista
    ma per la velocita di esecuzione su un FileSystem
    che potrebbe avere 200.000 record
    ( e magari senza indici )


    Ma non si puo avere la luna nel pozzo

    Grazie

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.