Pagina 1 di 6 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 54
  1. #1

    Importare DATI da TXT a MDB... ci sono quasi!

    Ciao,
    dopo un pò di consulto con Optime, mi sono documentato e pian pianino sto mettendo su lo script per importare sti benedetti dati contenuti nel file TXT nel mio MDB.

    Ho questo problema, il record da creare è composto da numerosi campi che quindi nel file TXT vanno a capo, pertanto se utilizzo il comando di lettura

    rearline

    non mi legge tutto, bensi dovrei leggere tutti i valori, che saranno messi nelle array dal cursone <EOR> al successivo <EOR> infatti i vari record sono sosì delimitati.

    Ecco il codice che ho messo su....

    codice:
    <%
    	Option Explicit
    %>
    <%
    Dim fsoMyFile
    Dim tsTextStream
    Dim sTesto, MioArray, CALLS, QSO_DATE, TIME_ON, RST_SENT
    
    'Creazione dell'istanza FSO.
    Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
    
    'Apertura del file, in lettura dati (1).
    Set tsTextStream = fsoMyFile.OpenTextFile(Server.MapPath("/public/iz7auh.adi"), 1)
    
    do while not tsTextStream.AtEndOfStream
    'Legge tutto il contenuto di un file.
    sTesto = tsTextStream.Readall
    
    'response.write "Contenuto del File : 
     " & sTesto
    MioArray = Split (sTesto," ", -1, 1) 
    CALLS = MioArray(0) 
    QSO_DATE = MioArray(1)
    TIME_ON = MioArray(2)
    RST_SENT = MioArray(3)
    
    Set ConnLOG = Server.CreateObject("ADODB.Connection")
    
    				ConnLOG.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\inetpub\webs\iz7auhcom\mdb-database\test.mdb"
    
    				SQL = " INSERT INTO [QSO-TAB]  (QSO-DATE, QSO-TIME, QSO-CALL, QSO-RSTS ) VALUES ('"& QSO_DATE &"', '"& TIME_ON &"', '"& CALLS &"', '"& RST_SENT &"' )"
    				Response.Write SQL
    				Set RSlog = ConnLOG.Execute(SQL)
    
    loop
    
    
    'Chiude il file.
    tsTextStream.Close
    %>
    Saluti da Francesco G.

  2. #2
    prima fai uno split su eor, poi (elemento per elemnto) risplitti come hai già fatto per ottenere i vari campi

  3. #3
    CIao Optime,
    grazie ancora per la tua pazienza, infatti mi sto "ingrippando" piano piano ci sto riuscendo, ma mi manca appunto questo tassello..... lui mi processa solo il primo record, nel file TXT ve ne sono 2 da processare, e come se arrivasse all' <EOR> e si bloccasse....


    COme devo fare?
    non ho capito come mi hai detto
    Saluti da Francesco G.

  4. #4
    il risultato della SPLIT è un Array, e tu lo devi scorrere. ti scrivo la logica

    codice:
    sTesto=Read...
    recArray=SPLIT(sTesto, "<EOR>")
    For iRk=lBound(recArray) to UBound(recArray)
       singoloRecord=recArray(iRK)
       --- qui metti la tua SPLIT, che deve splittare SINGOLORECORD, non più sTesto
       --- e fai tutta la insert ecc
    Next

  5. #5
    Ok grazie mi studio la logica....

    Ho verificato una cosa però con lo script che ho realizzato qualcosa non funge....

    .... la pagina mi stampa la SQL e mi sembra tutto ok

    INSERT INTO [QSO-TAB] ([QSO-DATE], [QSO-TIME], [QSO-CALL], [QSO-RSTS] ) VALUES ('20050323', '135100', '5B/ON7TL/M', '59' )


    ma quando verifico nel MDB mi trovo diversi record

    Date Time Callsign RSTs
    <QSO_DAT <TIME_ <CALL:10>5B/ON7 <RS
    <QSO_DAT <TIME_ <CALL:10>5B/ON7 <RS
    <QSO_DAT <TIME_ <CALL:10>5B/ON7 <RS
    <QSO_DAT <TIME_ <CALL:10>5B/ON7 <RS
    <QSO_DAT <TIME_ <CALL:10>5B/ON7 <RS
    <QSO_DAT <TIME_ <CALL:10>5B/ON7 <RS
    <QSO_DAT <TIME_ <CALL:10>5B/ON7 <RS


    Che sta robba?????
    Saluti da Francesco G.

  6. #6
    lo split interno va fatto su " ", ma devi prendere da ">" (escluso) in poi. fatti stampare a video quello che ricavi, è piu' facile sistemare

  7. #7
    COme ricavo a schermo quello che "prelevo"??

    Poi ti dicevo, che quando faccio il Response-Write SQL, mi stampa questo

    INSERT INTO [QSO-TAB] ([QSO-DATE], [QSO-TIME], [QSO-CALL], [QSO-RSTS] ) VALUES ('20050323', '135100', '5B/ON7TL/M', '59' )


    vuol dire che questi sono i dati ch dovrebbe inserire e non altro....


    Altra cosa se stmpo a video il contenuto del file di testo tutto ciò che è all'interno di <...> non viene visualizzato

    Saluti
    Saluti da Francesco G.

  8. #8

  9. #9
    codice:
     <%
    	Option Explicit
    %>
    <%
    Dim fsoMyFile
    Dim tsTextStream, ConnLOG, SQL, RSlog
    Dim sTesto, MioArray, CALLS, QSO_DATE, TIME_ON, RST_SENT
    
    'Creazione dell'istanza FSO.
    Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
    
    'Apertura del file, in lettura dati (1).
    Set tsTextStream = fsoMyFile.OpenTextFile(Server.MapPath("/public/iz7auh.adi"), 1)
    
    do while not tsTextStream.AtEndOfStream
    'Legge tutto il contenuto di un file.
    sTesto = tsTextStream.Readall
    
    'response.write "Contenuto del File : 
     " & sTesto
    MioArray = Split (sTesto," ", -1, 1) 
    CALLS = MioArray(0) 
    QSO_DATE = MioArray(1)
    TIME_ON = MioArray(2)
    RST_SENT = MioArray(3)
    
    Set ConnLOG = Server.CreateObject("ADODB.Connection")
    
    				ConnLOG.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\inetpub\webs\iz7auhcom\mdb-database\test.mdb"
    
    				SQL = " INSERT INTO [QSO-TAB]  ([QSO-DATE], [QSO-TIME], [QSO-CALL], [QSO-RSTS] ) VALUES ('"& QSO_DATE &"', '"& TIME_ON &"', '"& CALLS &"', '"& RST_SENT &"' )"
    				Response.Write SQL
    				Set RSlog = ConnLOG.Execute(SQL)
    
    loop
    
    
    'Chiude il file.
    tsTextStream.Close
    %>
    Saluti da Francesco G.

  10. #10
    Nella tua precedente email mi hai scritto:

    --- qui metti la tua SPLIT, che deve splittare SINGOLORECORD, non più sTesto
    --- e fai tutta la insert ecc

    non riesco a farlo :-((


    ho cosi nodificato il Codice

    codice:
     <%
    	Option Explicit
    %>
    <%
    Dim fsoMyFile
    Dim tsTextStream, ConnLOG, SQL, RSlog
    Dim sTesto, MioArray, CALLS, QSO_DATE, TIME_ON, RST_SENT
    
    'Creazione dell'istanza FSO.
    Set fsoMyFile = CreateObject("Scripting.FileSystemObject")
    
    'Apertura del file, in lettura dati (1).
    Set tsTextStream = fsoMyFile.OpenTextFile(Server.MapPath("/public/iz7auh.adi"), 1)
    
    do while not tsTextStream.AtEndOfStream
    'Legge tutto il contenuto di un file.
    sTesto = tsTextStream.Readall
    
    recArray=SPLIT(sTesto, "<EOR>")
    For iRk=lBound(recArray) to UBound(recArray)
       singoloRecord=recArray(iRK)
       --- qui metti la tua SPLIT, che deve splittare SINGOLORECORD, non più sTesto
       --- e fai tutta la insert ecc
    Next
    
    
    'response.write "Contenuto del File : 
     " & sTesto
    MioArray = Split (sTesto," ", -1, 1) 
    CALLS = MioArray(0) 
    QSO_DATE = MioArray(1)
    TIME_ON = MioArray(2)
    RST_SENT = MioArray(3)
    
    Set ConnLOG = Server.CreateObject("ADODB.Connection")
    
    				ConnLOG.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=d:\inetpub\webs\iz7auhcom\mdb-database\test.mdb"
    
    				SQL = " INSERT INTO [QSO-TAB]  ([QSO-DATE], [QSO-TIME], [QSO-CALL], [QSO-RSTS] ) VALUES ('"& QSO_DATE &"', '"& TIME_ON &"', '"& CALLS &"', '"& RST_SENT &"' )"
    				Response.Write SQL
    				Set RSlog = ConnLOG.Execute(SQL)
    
    loop
    
    
    'Chiude il file.
    tsTextStream.Close
    %>
    Saluti da Francesco G.

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.