sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
con un amico sto cercando di realizzare un programmino che ci risolvi una mole enorme di lavoro...
praticamente serve per rinominare dei file contenuti in una cartella a scelta nel seguente modo, nella prima colonna di un foglio di excel è contenuto il suo nome attuale e nella seconda il nome con cui deve essere rinominato. Ovviamente se il file non esiste salta il passaggio e va alla riga dopo..
Codice sorgente - presumibilmente VB.NET |
Public Class Form2 Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Integer, ByRef lpdwProcessId As IntPtr) As IntPtr Private Function seFileEsiste(ByVal nomeCompFile As String) As Boolean Dim F As New System.IO.FileInfo(nomeCompFile) If F.Exists Then seFileEsiste = True Else seFileEsiste = False End If End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim percorso As String = Application.StartupPath & "\Files\" Dim nomeFile As String = "Elenco.xls" Dim appExcel As New Excel.Application Dim WB As Excel.Workbook = appExcel.Workbooks.Open(percorso & nomeFile) Dim WS As Excel.Worksheet = WB.Worksheets("Foglio1") appExcel.Visible = False Dim i As Integer = 0 Try For i = 1 To 3 If seFileEsiste(percorso & WS.Range("A" & i).Text) Then My.Computer.FileSystem.RenameFile(percorso & WS.Range("A" & i).Text, WS.Range("B" & i).Text) End If Next i Catch ex As Exception '... Finally 'Chiusura oggetti Excel... End Try End Sub End Class
|
ho inserito anche le referenze per office excel ma mi sottolinea
Excel.Application
Excel.Workbook
WB.Worksheets
mi dice che non sono definiti...
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Forse ti manca la linea di imports:
Codice sorgente - presumibilmente C# / VB.NET |
Imports Microsoft.Office.Interop
|
P.S.: per vedere se un file esiste puoi anche usare IO.File.Exists, che è una funzione statica e funziona esattamente allo stesso modo di seFileEsiste.
|
|
sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
e questa riga la devo mettere in cima?
(sto leggendo la tua guida è fantastica se non la migliore che abbia trovato per principianti come me... forse la spiegazione sugli array è un pò complicata per il resto finora voto 10 et lode)
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Sì, gli imports vanno sempre prima di tutto il codice.
P.S.: ti riferisci a questa guida, o a quella sul mio sito?
|
|
sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
alla guida, quella sul tuo sito non l'ho ancora letta perchè essendo un novizio meglio un passettino alla volta...
|
|
sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
ho inserito la riga che mi hai consigliato ma nulla di che... stavo pensando a questo punto di usare un file in txt con dentro dei dati divisi con punto e virgola
tipo: nomefileattuale;nuovonome
nomefileattuale;nuovonome
nomefileattuale;nuovonome
nomefileattuale;nuovonome
qundi dovrei cercare come leggere da un file giusto?
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Dopo aver letto il file, basta usare la funzione d'istanza String.Split(";") per ottenere tutti le singole parti di stringa comprese tra ;.
|
|
sps84 (Normal User)
Expert
Messaggi: 202
Iscritto: 11/02/2009
|
adesso prova ma non riesco a capire come faccio ad attribuire parti di testo a variabili...
es:
marco1;marco2
gianni1;gianni2
luca1;luca2
dovrei fargli leggere la prima riga e digli di fermarsi al ( ed attribuirgli la variabile a
leggere dopo il ( e dargli la varibile b giusto?
un macello... cmq sono fiducioso che alla fine della tua guida ci riesco..
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
No. Mi chiedo perchè le persone non leggano mai quello che scrivo.
Codice sorgente - presumibilmente VB.NET |
'Ammettiamo che R sia uno StreamReader Dim Linea As String Linea = R.ReadLine() Dim Parti() As String = Linea.Split(";")
|
Linea = "uno;due;tre" > Parti = {"uno", "due", "tre"}
|
|