Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-06-2009, 21:13   #1
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
[Excel] Imposrtare dati da txt

SAlve ragazzi ho un file txt formattato in questo modo

Codice:
1,2,3,4,5
6,7,8,9,10

vorrei importarlo in excel mettendo i numeri per colonna e non per riga.


Ps. per riga ci sono riuscito tramite la funzione di importazione dati.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 13:39   #2
john_revelator
Senior Member
 
L'Avatar di john_revelator
 
Iscritto dal: Jul 2007
Messaggi: 1092
Fammi capire. In pratica vorresti nella colonna a

1
2
3
4
5

nella b

6
7
8
9
10

e così via

oppure tutti nella stessa colonna?
john_revelator è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 14:26   #3
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Puoi provare ad usare la Workbooks.OpenText(), che penso sia l'equivalente VBA della procedura che hai già provato. Un metodo che richiede poco codice ( anche se una nutrita serie di parametri ), ma che non mi convince troppo quanto a flessibilità di utilizzo.

Personalmente la risolverei così ( metto ogni riga trovata nel .txt, in una colonna, iniziando dalla "A" ) :

1. Anzitutto è necessaria questa Function :

Codice:
Private Function LetteraColonna(indiceColonna As Long) As String
    LetteraColonna = Left(Cells(1, indiceColonna).Address(1, 0), InStr(1, Cells(1, indiceColonna).Address(1, 0), "$") - 1)
End Function
2. Codice che fa il lavoro :

Codice:
    Dim FF As Integer
    FF = FreeFile
    Dim numRigaTxt As Long
    numRigaTxt = 0
    Dim rigaTxt As String
    Dim arrayValRiga() As String

    Open percorso & nomeFileTxt For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        numRigaTxt = numRigaTxt + 1
        arrayValRiga = Split(rigaTxt, ",")
        Range(LetteraColonna(numRigaTxt) & "1:" & LetteraColonna(numRigaTxt) & (UBound(arrayValRiga) + 1)) = WorksheetFunction.Transpose(arrayValRiga)
    Loop
    Close FF
Chiaramente qui posso fare quello che voglio, impostare la colonna e la riga da cui partire, e personalizzarmela a piacere... Prova...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 15:10   #4
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da john_revelator Guarda i messaggi
Fammi capire. In pratica vorresti nella colonna a

1
2
3
4
5

nella b

6
7
8
9
10

e così via

oppure tutti nella stessa colonna?
Tutti nella stessa colonna.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 15:11   #5
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Puoi provare ad usare la Workbooks.OpenText(), che penso sia l'equivalente VBA della procedura che hai già provato. Un metodo che richiede poco codice ( anche se una nutrita serie di parametri ), ma che non mi convince troppo quanto a flessibilità di utilizzo.

Personalmente la risolverei così ( metto ogni riga trovata nel .txt, in una colonna, iniziando dalla "A" ) :

1. Anzitutto è necessaria questa Function :

Codice:
Private Function LetteraColonna(indiceColonna As Long) As String
    LetteraColonna = Left(Cells(1, indiceColonna).Address(1, 0), InStr(1, Cells(1, indiceColonna).Address(1, 0), "$") - 1)
End Function
2. Codice che fa il lavoro :

Codice:
    Dim FF As Integer
    FF = FreeFile
    Dim numRigaTxt As Long
    numRigaTxt = 0
    Dim rigaTxt As String
    Dim arrayValRiga() As String

    Open percorso & nomeFileTxt For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        numRigaTxt = numRigaTxt + 1
        arrayValRiga = Split(rigaTxt, ",")
        Range(LetteraColonna(numRigaTxt) & "1:" & LetteraColonna(numRigaTxt) & (UBound(arrayValRiga) + 1)) = WorksheetFunction.Transpose(arrayValRiga)
    Loop
    Close FF
Chiaramente qui posso fare quello che voglio, impostare la colonna e la riga da cui partire, e personalizzarmela a piacere... Prova...
Ehmmm... non ho mai avuto a che fare con macro e programmazione su excel

Potresti darmi qualche diritta ? Grazie
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 15:29   #6
john_revelator
Senior Member
 
L'Avatar di john_revelator
 
Iscritto dal: Jul 2007
Messaggi: 1092
Quote:
Originariamente inviato da qwerty86 Guarda i messaggi
Tutti nella stessa colonna.
Se li devi mettere tutti in una colonna io risolverei con la powershell.
Ad esempio a questo link

http://www.hwupgrade.it/forum/showth...ght=powershell

trovi spiegato come installarla.

Una volta installata sarebbe sufficiente accedervi digitando powershell da esegui, raggiungere come col classico prompt dei comandi la cartella contenente il file di testo e digitare mezza riga di codice

gc tuo_file.txt | % {$_.split(",")} | out-File incolonnati.txt

Avresti così il tuo file pronto per l'importazione.
Comunque il mitico MarcoGG ti risolverà il problema senza installare alcunchè.
john_revelator è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 16:25   #7
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Beh, se vanno tutti nella stessa colonna ( ad es. A ) è ancora più semplice :

Codice:
    Dim FF As Integer
    FF = FreeFile
    Dim rigaTxt As String
    Dim strValori As String
    Dim arrayValori() As String

    Open percorso & nomeFileTxt For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        If strValori = "" Then
            strValori = rigaTxt
        Else
            strValori = strValori & "," & rigaTxt
        End If
    Loop
    arrayValori = Split(strValori, ",")
    Range("A1:A" & (UBound(arrayValori) + 1)) = WorksheetFunction.Transpose(arrayValori)
    Close FF
In questo caso si può anche omettere la Function LetteraColonna() dell'esempio precedente.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 16:38   #8
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Beh, se vanno tutti nella stessa colonna ( ad es. A ) è ancora più semplice :

Codice:
    Dim FF As Integer
    FF = FreeFile
    Dim rigaTxt As String
    Dim strValori As String
    Dim arrayValori() As String

    Open percorso & nomeFileTxt For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        If strValori = "" Then
            strValori = rigaTxt
        Else
            strValori = strValori & "," & rigaTxt
        End If
    Loop
    arrayValori = Split(strValori, ",")
    Range("A1:A" & (UBound(arrayValori) + 1)) = WorksheetFunction.Transpose(arrayValori)
    Close FF
In questo caso si può anche omettere la Function LetteraColonna() dell'esempio precedente.

Grazie mille , ma non ho conoscenze in vba , sono riuscito a capire dove inserire codice in excel ma vorrei capire a cosa deve essere legat questo codice e come fare poi per scegliere il file....
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 16:48   #9
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
OK ci sono riuscito Ho creato una macro e vi ho associato il tuo codice. Ora dato che non devo usarlo io ma un amico che non capisce nulla di programmazione, volevo chiederti :

- c'è un modo per fargli scegliere il file a da una finestra? e non inserirlo nel codice?

- come dovrà fare lui per eseguire la macro ?

Grazie.
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 17:42   #10
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Codice:
Function BrowseForFolder(Optional OpenAt As Variant) As Variant 
     'Function purpose:  To Browser for a user selected folder.
     'If the "OpenAt" path is provided, open the browser at that directory
     'NOTE:  If invalid, it will open at the Desktop level
     
    Dim ShellApp As Object 
     
     'Create a file browser window at the default folder
    Set ShellApp = CreateObject("Shell.Application"). _ 
    BrowseForFolder(0, "Please choose a folder", 0, OpenAt) 
     
     'Set the folder to that selected.  (On error in case cancelled)
    On Error Resume Next 
    BrowseForFolder = ShellApp.self.Path 
    On Error Goto 0 
     
     'Destroy the Shell Application
    Set ShellApp = Nothing 
     
     'Check for invalid or non-entries and send to the Invalid error
     'handler if found
     'Valid selections can begin L: (where L is a letter) or
     '\\ (as in \\servername\sharename.  All others are invalid
    Select Case Mid(BrowseForFolder, 2, 1) 
    Case Is = ":" 
        If Left(BrowseForFolder, 1) = ":" Then Goto Invalid 
    Case Is = "\" 
        If Not Left(BrowseForFolder, 1) = "\" Then Goto Invalid 
    Case Else 
        Goto Invalid 
    End Select 
     
    Exit Function 
     
Invalid: 
     'If it was determined that the selection was invalid, set to False
    BrowseForFolder = False 
     
End Function
Ho trovato questa funzione che visualizza un explorer ma solo per directory , come posso modificarlo per vedere i file e quindi ottenere il path del file da aprire?
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 18:16   #11
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Grazie a tutti , soprattutto a te MarcoGG , ho risolto. Ecco il codice, magari serve a qualcuno...

Codice:
Option Explicit

Function RetrieveFileName()

Dim sFileName As String
 
 RetrieveFileName = Application.GetOpenFilename

    'They have cancelled.

    If RetrieveFileName = "False" Then Exit Function

  
  

End Function

Sub txtToExcel()
Dim result As String
    result = RetrieveFileName
    Select Case result
        Case Is = False
            result = "an invalid file"
        Case Else
            'don't change anything
    End Select

    Dim FF As Integer
    FF = FreeFile
    Dim rigaTxt As String
    Dim strValori As String
    Dim arrayValori() As String

    Open result For Input As FF
    Do While Not EOF(FF)
        Line Input #FF, rigaTxt
        If strValori = "" Then
            strValori = rigaTxt
        Else
            strValori = strValori & "," & rigaTxt
        End If
    Loop
    arrayValori = Split(strValori, ",")
    Range("A1:A" & (UBound(arrayValori) + 1)) = WorksheetFunction.Transpose(arrayValori)
    Close FF
End Sub
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 21:03   #12
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da qwerty86 Guarda i messaggi
Codice:
Option Explicit

Function RetrieveFileName()

Dim sFileName As String
 
 RetrieveFileName = Application.GetOpenFilename

    'They have cancelled.

    If RetrieveFileName = "False" Then Exit Function

  
  

End Function
Non mi è molto simpatica quella Function...
sFileName viene dichiarato e mai usato.
Inoltre è buona regola aggiungere un filtro, in questo caso per restringere il campo di scelta ai soli files di testo .txt :

Codice:
    Dim nomeFileTxt As Variant
    Dim filtroFiles As String
    filtroFiles = "File di testo (*.txt),*.txt"
    nomeFileTxt = Application.GetOpenFilename(filtroFiles, 1, "Scegli un file di testo", "Apri File", False)
    
    If nomeFileTxt = False Then
        MsgBox "Nessun file valido"
    Else
        'Continua l'elaborazione...
        '...
    End If
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2009, 21:39   #13
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da MarcoGG Guarda i messaggi
Non mi è molto simpatica quella Function...
sFileName viene dichiarato e mai usato.
Inoltre è buona regola aggiungere un filtro, in questo caso per restringere il campo di scelta ai soli files di testo .txt :

Codice:
    Dim nomeFileTxt As Variant
    Dim filtroFiles As String
    filtroFiles = "File di testo (*.txt),*.txt"
    nomeFileTxt = Application.GetOpenFilename(filtroFiles, 1, "Scegli un file di testo", "Apri File", False)
    
    If nomeFileTxt = False Then
        MsgBox "Nessun file valido"
    Else
        'Continua l'elaborazione...
        '...
    End If
Sei semplicemente un grande oserei un amico Grazie mille
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2009, 18:25   #14
ses4
Member
 
Iscritto dal: Aug 2008
Messaggi: 178
Quote:
Originariamente inviato da qwerty86 Guarda i messaggi
SAlve ragazzi ho un file txt formattato in questo modo

Codice:
1,2,3,4,5
6,7,8,9,10

vorrei importarlo in excel mettendo i numeri per colonna e non per riga.


Ps. per riga ci sono riuscito tramite la funzione di importazione dati.
In alternativa potresti importarlo normalmente, poi dopo aver copiato l'intero intervallo, potresti fare un incolla speciale>valori>trasponi in un nuovo foglio.
Ciao
ses4 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
Xiaomi 17: ecco il prezzo europeo del to...
Google fa tremare l'industria dei videog...
Gli sviluppatori 'abbandonano' Xbox: il ...
Galaxy S27 Ultra, è già te...
PlayStation Portal con display OLED: Son...
POCO X8 Pro e Pro Max sono quasi pronti:...
OpenAI ha bisogno di nuovi fondi: NVIDIA...
Mese nuovo, rinnovo delle offerte Amazon...
Accessori auto imperdibili su Amazon: pu...
Gli utenti iPhone possono ridurre la pr...
Come fare affari con l'usato garantito d...
Il miglior tablet di tutta Amazon, DOOGE...
Gli smartphone in super offerta su Amazo...
Produttori di memoria più severi ...
WhatsApp Business, Meta introduce costi ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:46.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v