Newsgroup: it.comp.lang.visual-basic
Titolo: Rinominare centinaia di file

Un saluto affettuoso a tutti i frequentatori del Newsgroup.
Ho il seguente problema.
 
Ho una cartella contenente centinaia di file con nome nel formato "[<stringa1>] <stringa2>".
Esempi:
[Manzoni] I Promessi Sposi (1827)
[Pirandello] Il fu Mattia Pascal (1904)
[Verga] Mastro Don Gesualdo (1889)
ecc...
 
Vorrei un codice in Basic che rinominasse i file nel formato "<stringa1> - <stringa2>".
Esempi:
Manzoni - I Promessi Sposi (1827)
Pirandello - Il fu Mattia Pascal (1904)
Verga - Mastro Don Gesualdo (1889)
ecc...
 
Ringrazio in anticipo quanti mi aiuteranno.


in pseudo codice
 
leggi la directory e memorizza i nomi in un array poi
per ogni file  :
1) cerca il carattere '[' nella stringa e conservati il posto
2) cerca il carattere ']' nella stringa e conservati il posto
3) estrai il pezzo di stringa compreso tra i due posti dei punti 1 e 2 ( 
con eventualmente un opportuno aggiustamento )
4) estra il pezzo di stringa che viene dopo il posto del punto 2 ( con 
eventualmente un opportuno aggiustamento )
5) concatena quello che ottieni dal punto 3, una stringa " - " e quello 
che ottieni dal punto 4
6 esegui il rename del file col nome ottenuto al punto 5
 
l'implementazione e' lasciata come esercizio, anche di debug ;-)
 
nota bene :
a) potrebbe convenire eseguire delle operazioni di trim() per eliminare 
spazi inutili
b) l'operazione 1 potrebbe essere ridondante

Grazie mille "mmm".
Però ho bisogno del codice.
Potresti darmelo?

 Potresti darmelo?
 
NO! a costo di essere antipatico
 
SE hai postato su un gruppo dedicato alla programmazione ( in visual 
basic ) vuol dire che almeno di sfuggita sai cos'e' la scrittura di 
programmi ed il visual basic
 
la traduzione dello pseudo codice che ti ho passato e' banale per cui un 
minimo di lavoro ti tocca ( devi solo trovare come si chiamano le 
funzioni di manipolazione delle stringhe )
 
l'help in linea del VB e' piu' che adeguato e il debugger per verificare 
il funzionamento di un programma e' utilissimo
 


Pappa pronta, eh?
Non hai specificato in che 'Basic' lo vuoi... ad ogni modo, se ti vuoi divertire un po' con le regular expression, questo in 
VB.NET
 fa quello che chied.
 
      Dim rx As New System.Text.RegularExpressions.Regex("^\[{1}(.*)\]{1}(.*)\({1}(\d*)\){1}.*$")
      Dim match As System.Text.RegularExpressions.Match
      Dim di As New IO.DirectoryInfo("C:\TEST")
      Dim newName As String
 
      For Each fi As IO.FileInfo In di.GetFiles("*.*")
         match = rx.Match(fi.Name)
 
         If match.Success Then
            newName = String.Format("{0} - {1} ({2}){3}", match.Groups(1).Value.Trim, match.Groups(2).Value.Trim, match.Groups(3).Value.Trim, IO.Path.GetExtension(fi.Name))
 
            'Scegli se rinominare o copiare
            'IO.File.Move(fi.FullName, IO.Path.Combine(fi.DirectoryName, newName))
            'IO.File.Copy(fi.FullName, IO.Path.Combine(fi.DirectoryName, newName))
         End If
      Next
 
A te almeno il compito di capire come farlo funzionare
 
 
P.S.
Qualcuno sa se si può fare un pattern migliore? non sono proprio un drago con le RegEx, anche se quello sopra funziona ho il sospetto si possa scrivere meglio...


NO!....come detto è un ng di programmazione....fattelo!
 
Però....se non sei un programmatore ....
 
http://rename.lupasfreeware.org/lupasrename.php
 
 
questo programma fa quello che chiedi
 

questo programma fa quello che chiedi
 
Oltre tutto quello che chiede è di una banalità assurda se hai un minimo di 
conoscenze!!!
Io ho imparato a programmare proprio per esigenze personali!
Da una parte mi piacerebbe poterlo aiutare... dall'altra sono molto 
combattuto! 
 

Bastano due replace!!!
 
:)


 
 
''Non riesco a testare un sito web nella versione per il mobile.... non ho
un iphone sottomano!
 
Ho installato firefox con un user switcher
 
il seguente codice
if( $coso->DetectSmartphone() == 1 ){
echo("SMART:".URL_TEMPLATE);
echo("<meta name=\"viewport\" content=\"width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />").PHP_EOL;
     echo("<link rel=\"stylesheet\"
''
 
Questo l'hai chiesto tu sull' NG html..... ti avessero risposto allo stesso 
modo ?
COMPRATI UN IPHONE  BARBONE ! 
 
 

Questo è un NewsGroup di programmazione, dove le persone NORMALI postano il 
proprio codice NON FUNZIONANTE in cerca d'aiuto... poi ci sono i furbi!!!
Tu sei uno di quelli!!!
Quello che tu richiedi è una prestazione... e le prestazioni si pagano!!!
NON SI PRETENDONO GRATIS... questo comportamento è molto scortese e 
indisponente!!! 
 

 indisponente!!!
 
A me pare che nel manifesto
 
1>postano il proprio codice NON FUNZIONANTE in cerca d'aiuto
 
2> Quello che tu richiedi � una prestazione... e le prestazioni si pagano!!! 
NON SI PRETENDONO GRATIS...
 
non sia proprio contemplato.
 
Se non volete aiutare CHI NON E' VOSTRO '' CLIENTE '' evitate di rispondere
 
 
MANIFESTO di IT.COMP.LANG.VISUAL-BASIC
 
Versione: 1.0.8
Prima stesura: 30/10/1998
Ultima revisione: 21/08/2001
 
In questo documento sono elencate le regole a cui si dovrebbero attenere 
tutti i
partecipanti del newsgroup.
 
 
Questo documento viene postato sul newsgroup ogni settimana e con un
subject ben chiaro: "[MANIFESTO] Manifesto ufficiale di
it.comp.lang.visual-basic".
 
La copia aggiornata di questo documento e' reperibile sul Sito Comune del
newsgroup, all'indirizzo:
http://www.it-lang-vb.net/docs/Manifesto.txt
 (nella sezione
Documentazione del Sito Comune).
 
NOTE:
Le eventuali modifiche al Manifesto verranno apportate solo per comune
accordo dei partecipanti del NG.
Le richieste di modifica possono pervenire da qualsiasi partecipante al
newsgroup, e devono essere segnalate sul newsgroup stesso tramite messaggio
di proposta con subject: "[MANIFESTO] Modifiche" o simile. Le proposte di
modifica verranno sottoposte a votazione, alla quale potranno partecipare
tutti i frequentatori del newsgroup.
Le modifiche non sostanziali, ovvero:
- modifica di un indirizzo di posta elettronica o di un URL
- modifica di un nome proprio o di cosa
- correzioni di sintassi o forma
potranno esser fatte direttamente dal WebMaster in carica o da persona 
delegata, senza
sottostare a votazione.
Il WebMaster o chi per esso notificher� al newsgroup tali modifiche in un 
post dal soggetto
"[MANIFESTO] Correzioni apportate"
 
----------------------------------------------------------------------------
 
 
REGOLE GENERALI
------------------------------
 
Articolo 1)
Questo gruppo e' dedicato alle discussioni di carattere tecnico o di
interesse generale riguardanti l'ambiente di sviluppo Microsoft Visual Basic
e di tutti gli strumenti aggiuntivi di terze parti disponibili (VBX, OCX,
DLL ecc.).
1bis) [VBA e VBScript]
In mancanza di altri newsgroup specifici in italiano (come 
it.comp.database.access), e
finche' non verranno creati newsgroup per VBScript, tali argomenti saranno
ospitati su questo newsgroup. Anche (e soprattutto) per questi argomenti e'
buona norma mettere nel subject dei messaggi una sigla in maniera esplicita:
[VBA] o [VBSCRIPT].
Si noti che il VBA relativo ad Access dovrebbe essere comunque discusso su
it.comp.database.access.
 
Articolo 2)
Il gruppo, che si occupa delle versioni attuali e future del pacchetto
Microsoft, puo' essere usato anche per scambiare indirizzi interessanti
(www, ftp, gopher o altro), riguardanti l'argomento trattato (Visual Basic).
 
Articolo 3)
Chi non rispetta le elementari regole di convivenza sul newsgroup dovrebbe
essere educatamente invitato a leggerle su questo Manifesto e a rispettarle.
L'invito dovrebbe essere spedito via e-mail privata: in questo modo si
raggiunge direttamente l'interessato e si evita di intasare inutilmente il
newsgroup.
 
Articolo 4)
I partecipanti alle discussioni su questo newsgroup sono tenuti a
rispettare, per quanto possibile, le idee altrui e mantenere un
comportamento il piu' possibile educato e corretto.
 
Articolo 5)
In caso di inesperienza nell'utilizzo dei newsgroups, potrebbe essere una
buona pratica, per capire le regole che lo governano, la vecchia regola di
frequentare "in ombra" (cioe' solo leggendo i messaggi) il newsgroup prima
di postare.
 
Articolo 6)
In caso di difficolta' nella trasmissione di messaggi al newsgroup, i
messaggi di prova devono essere postati sul newsgroup it.test, che e' stato
costituito proprio per questo scopo. Sono da evitare messaggi di test in 
quanto
esistono newsgroup appositi, come appunto it.test.
 
 
REGOLE PER I MESSAGGI
----------------------------------------
 
Articolo 7)
I messaggi devono sempre essere in plain ASCII (solo testo), non sono
ammessi messaggi in HTML, ne' codificati in alcun modo (Base64, Rot13 e via
dicendo).
La stessa regola vale per eventuali sorgenti e pezzi di codice, i quali
dovranno essere inseriti in formato testo (plain ASCII) nel corpo del
messaggio e non in attachment.
 
Articolo 8)
In questo newsgroup non sono ammessi in alcun caso files binari in
attachment, un apposito robot si occupa dell'eliminazione degli stessi.
Lo scambio di files binari pu� essere effettuato utilizzato il gruppo
it.binari.file, e notificandolo su it.comp.lang.visual-basic con prefisso
[!] (v. Articolo 10).
I files binari (DLL, OCX, etc.) possono essere inviati, a chi ne faccia
esplicita richiesta, via e-mail privata.
In caso di materiale interessante per il NG, e freeware, e' consigliato
inviarlo al Webmaster tramite il modulo presente sul Sito Comune, che 
provvedera'
a renderlo disponibile sul sito stesso.
L'indirizzo e-mail del WebMaster �: ***@
it-lang-vb.net
. Tale indirizzo pu�
venir utilizzato solo per comunicazioni riguardanti il Sito Comune e per 
l'invio
di materiale da pubblicare sul sito stesso; non deve venir utilizzato per 
richiedere
aiuti o consigli riguardanti la programmazione o per comunicazioni private 
al WebMaster
di turno.
 
Articolo 9)
Evitare di scrivere o rispondere a messaggi OT (ossia Off Topic: che non
riguardano gli argomenti trattati in questo newsgroup, vedi articolo 1).
In particolare occorre evitare assolutamente di rispondere a messaggi di
annunci pubblicitari o messaggi tipo:
- "Super-mega sito porno..."
- "Tizio ha guadagnato 20000 dollari, prova anche tu..."
perche' le risposte non arrivano mai al colpevole (chi lo
ha spedito), e risultano esse stesse dannose al newsgroup poiche'
amplificano il disturbo dato dal messaggio originale.
 
Articolo 10)
Nel soggetto del messaggio dovrebbe essere specificata la tipologia del
messaggio stesso, tramite l'uso di una notazione semplice ed intuitiva, ad
esempio:
[MANIFESTO] : Il manifesto del gruppo o discussioni su di esso;
[FAQ] : la FAQ del gruppo o discussioni su di essa;
[SITO COMUNE] : annunci o discussioni riguardanti il Sito Comune;
[?] : domande;
[?2] : domande gia' postate, che non hanno ricevuto una risposta valida;
[!] : comunicazioni importanti, la risoluzione di un bug...;
[VBA] : Visual Basic for Application
[VBSCRIPT] : Visual Basic Script
[CERCO] : ricerco una DLL, un OCX, o del materiale relativo a VB;
[OT] : battute, motti di spirito, acidit�... (Da usare con moderazione!)
Dopo questa notazione dovra' essere indicato sinteticamente il
problema/soluzione/considerazione.
-Ho un problema con l'oggetto printer: voglio cambiare il formato della
carta:
[?] Printer: come cambiare il formato carta?
-Non riesco ad usare l'API GetPaperinoChunk()
[?] API GetPaperinoChunk(): come si usa?
DA EVITARE ASSOLUTAMENTE i soggetti generici e non chiari, tipo:
"aiutatemi...", "per gli esperti...", "risolvete questo...", ecc...
 
Articolo 11)
Evitare di apporre alla fine del messaggio firme eccessivamente lunghe. Chi
vuole dare piu' informazioni, basta che indichi l'indirizzo della propria
pagina web.
 
 
REGOLE PER I MESSAGGI (DOMANDE)
----------------------------------------
 
Articolo 12)
Prima di postare una domanda, assicurarsi che l'argomento non sia trattato
nelle fonti di informazione incluse in Visual Basic (help in linea e
manuali) e non sia gia' stato trattato in precedenza sul newsgroup. Per
controllare i messaggi vecchi del newsgroup e' possibile utilizzare i motori
di ricerca per newsgroups (Es. 
www.deja.com
).
 
Articolo 13)
All'inizio del messaggio dovra' essere chiaramente indicato sia la versione
dell'ambiente di sviluppo usato (includendo gli aggiornamenti eventuali),
che il sistema operativo (patch incluse, anche qui); queste informazioni
saranno utili agli altri per dare una risposta il piu' possibile corretta.
Dopo di ci� si dovr� indicare il problema, riportando eventualmente anche la
routine (opportunamente sintetizzata) che non funziona. Eventuali richieste
di aiuto devono essere precise, in grado di focalizzare il problema, e se
necessario (spesso), esponendo in che contesto e' applicato il problema
stesso.
Evitare testi del tipo: "Ma perche' le date non funzionano nei comandi SQL?"
Bensi': "Ho provato a fare una selezione dei record discriminando per la
data di nascita, tipo "SELECT * FROM tabella WHERE dtNascita=30/10/98", ma
mi da errore di sintassi, dove sbaglio?"
 
Articolo 14)
Se una domanda inviata al newsgroup rimane senza risposta, il proponente
potr� riproporre il messaggio una seconda volta solo dopo un ragionevole
intervallo di tempo (almeno 4 o 5 giorni). La seconda proposta dovr�
contenere il medesimo messaggio, se possibile riformulato in maniera piu'
chiara, e l'oggetto dovr� contenere il prefisso [?2] che ne descrive la
natura (v. Articolo 10).
 
Articolo 15)
In caso di problemi nuovi, complessi e particolarmente interessanti, il
richiedente dovrebbe provare le varie soluzioni proposte sia sul newsgroup
che in forma privata per e-mail, o trovate in modo autonomo, ed infine
segnalare sul newsgroup la soluzione corretta (o un riassunto delle
soluzioni alternative, nel caso ne esista piu' di una) in un messaggio il
cui oggetto dovr� contenere il prefisso [!] (v. Articolo 10).
Naturalmente le soluzioni migliori potranno essere inviate al
WebMaster (v. Art. 8) e pubblicate sul Sito Comune.
 
 
REGOLE PER I MESSAGGI (RISPOSTE)
----------------------------------------
 
Articolo 16)
Cercare di rispondere il piu' possibile sul newsgroup, in modo che tutti
possano trarne vantaggio, senza naturalmente ingolfare il newsgroup con
messaggi troppo voluminosi.
 
Articolo 17)
Quotare sempre il messaggio originario, ovviamente cercando di sintetizzarlo
al massimo (e' inutile riportare firma, convenevoli, ecc.): in questo modo
deve essere possibile capire l'argomento della domanda, anche non avendo
seguito tutto il thread di discussione.
 
Articolo 18)
Per le richieste riguardanti informazioni o materiale che fosse gia'
presente nelle FAQ o sul Sito Comune, e' sufficiente rispondere indicando il
relativo riferimento (indirizzo del Sito Comune).
 
Articolo 19)
Le risposte dovranno essere attinenti alla domanda ed utili per il
raggiungimento della soluzione. Nel caso la domanda non sia chiara o non ne
vengano specificati dettagli utili a dare la risposta, si dovrebbe invitare
il richiedente a riformulare la domanda in termini piu' precisi. Nelle
risposte inerenti la programmazione sono graditi piccoli esempi (anche in
forma di codice sorgente) che aiutino a capire in modo piu' concreto la
soluzione.
 
 
 

Caro Massimo non sono un dipendente del NewsGroup e quindi aiuto chi mi pare 
se mi pare... PUNTO!!!
 
Non ho ancora capito bene a quale categoria appartieni...
...e comunque non mi riguarda!
 
PS: LE PRETESE SONO SEMPRE INDISPONENTI!!!
 

 PS: LE PRETESE SONO SEMPRE INDISPONENTI!!!
 
Anche URLARE  è indisponente. Tu sei indisponente.
 
 
 

Anche URLARE  è indisponente. Tu sei indisponente.
 
E sai quanto me ne frega del tuo parere... non dormirò stanotte!!! ;) 
 

Ma poi scusa proprio tu parli?!?
Tu che hai scambiato questo posto per il mercatino delle pulci?
LOL

 ha scritto nel messaggio 
news:4ff81f84$0$1597$5fc...@news.tiscali.it...

Appunto  ciaooooo  dormi bene 
 
 

 LOL
 
E ho rispettato il Manifesto  con [OT]  e  trattandosi
ANCHE di roba inerente il VB.
 
tu invece manco per le palle .....
 
p.s. torna a dormire ore 
 
 

 ha scritto nel messaggio 
news:jt99ru$ndv$1...@dont-email.me...

OOOHHH  SCUSAMI  !!!
 
Ho anche usato il terminale sbagliato........cosi sono
pure Morpher 
 
 

pure Morpher 
 
No sei pure stronzo!!!
 
...e con la coda di paglia!!!
 
Buffone!!!
 
PS: "Vai a dormire" lo dici a tua sorella!!!

 ha scritto nel messaggio 
news:4ff82d97$0$6822$5fc...@news.tiscali.it...

'ZZO vuoi  ...tu hai detto che andavi a dormire tranquillo 
 
 

 ha scritto nel messaggio
zac
TOH il mio libraio preferito!!!!
 
Senti ma "la coltivazione delle bouganville" riesci a trovarmela o no????
Vah che come libraio non sei professionale.....!!!!
 


LIBRAIOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
Art 9.....
 
come la mettiamo????....
dai bello stai manzino!!!
 

 ha scritto nel messaggio 
news:4ffa9e51$0$6821$5fc...@news.tiscali.it...

Ascolta..... ma sei cosi da UBRIACO oppure sei un coglione naturale ? 
 
 

 ha scritto nel messaggio 
news:4ffa9f0a$0$6820$5fc...@news.tiscali.it...

Coglione ipocrita .. vallo anche adire a tutti gli altri
che postano [OT]  tra i quali  TU STESSO !!!  ipocrita del Caxxo
 
 

Senti Pino, Fiore o come coso ti chiami...
guarda che l'OT l'hai tirato in ballo tu!!!
TU ti dovresti leggere meglio il MANIFESTO...
...o se sei abbastanza intelligente (e meno FURBO!!!)...
...basta che ci pensi!!!
 

...scusa ho dimenticato le virgolette...
...rimedio subito...
 
"FURBO"!!!
 

 ha scritto nel messaggio 
news:4ffb04ce$0$1589$5fc...@news.tiscali.it...

Uhhh ti sei gią svegliato ...???? 
 
 

Che gran figura di merda che ci stai facendo...
...se volevi essere lo zimbello... :D

 ...se volevi essere lo zimbello... :D
 
Caxxo 2 bambini di 2 anni ....
 
ma tornatene in sardegna pirla 
 
 

pino sei troppo divertente...
...e troppo stupido da non capire...
...che ti stiamo stuzzicando di proposito...
...perchè le tue reazioni...
...ricordano il TROTA!!! 
 


...ma non avevi traslocato????
....ma non dovevi mandarmi gli avvocati....????
ma sopratutto
....me l'hai trovato il mio libro????
 
 
 
Cmq dai non è da tutti......
 
ALLA FACCIACCIA DI MAURO E COMPANY:
voi sarete anche MVP....ma un biografo ufficiale come questo che sta 
attento a dove posto e mi segue passo passo voi non ce l'avete!!! Cicca 
cicca tiè! :P
 
Librario ricordati : quando scriverai la mia biografia voglio le 
royalty!!! poche...ma le voglio!
 
Ma la domanda sorge spontanea....ma nella vita reale che fai? Oltre al 
mio biografo ovvio!

biografo ovvio!
 
Aiuta la Scottex a non fallire...
Và... e caga!!! :D 
 

 
ALLA FACCIACCIA DI MAURO E COMPANY:
voi sarete anche MVP....ma un biografo ufficiale come questo che sta
attento a dove posto e mi segue passo passo voi non ce l'avete!!! Cicca
cicca tiè! :P
********************************
 
AAAARRRRGGGHHHHHHHHHHHHH !
Rodo da matti... ;-)
--
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
 
http://www.maurogsc.eu/
 
 

 biografo ovvio!
 
'La biografia di un povero Minkietta e la sua auto da nonna papera'
 
adios esseri immondi 
 
 

 adios esseri immondi
 
+1
 
Te lo meriti se te ne vai. Il tuo contributo a questo gruppo � stato 
solo rotture di coglioni.
 
-- 
-> G.Chiappori
 
 


 
 -1
 
ti senti messo in mezzo ?
 
adios ( che per i poveri toscani ''idioti'' non vuol dire ADDIO ) 
 
 

adios ( che per i poveri toscani ''idioti'' non vuol dire ADDIO )
 
Prima di criticare gli altri, pensa a migliorare te stesso,
altrimenti continuerai ovunque a collezionare esclusivamente figure di 
merda.
L'incoerenza si paga...
 


 
MA PERCHE' ...DICO PERCHE'
me lo fate arrabbiare....che poi si rovina l'appetito!
 
Cmq
Addio non è un saluto se vuoi proprio fare il saputello...ma una 
dedicazione all'essere superiore comunemente chiamato "dio"....
detto questo....
che io sia superiore a te è palese...
ma non così tanto da spingere un essere inferiore a "dedicarsi" a me.... 
grazie no!
Ma ci godi ad umiliarti così? a me fai un po pena!!!
Sai tanto di coppa cobram!!!
 
http://youtu.be/cOyfAUmczMw
 

 
 
Certo che tra il camaleonte e Tiscali hai due amiconi. Ti invidio, dimmi come
faiiiiiiiiiiiiiiiiii :D
 


è un dono! :D
 
l'unico problema sai qual'è...e son serio adesso...
che internet estremizza:
nel mondo reale capita spessissimo di discutere a voce tra posizioni 
inconciliabili(uno di DX uno di SX...uno della Juve uno della 
Fiorentina...) e si può anche degenerare...ma fuori dal bar o alla 
cena...tutto poi si risolve in un vaffanculo ed una bevuta...e si rimane 
amici come prima!
 
Qui non c'è sfogo!...e questo tizio come vedi mi segue su internet...non 
mi sembra "sanissima" 'sta cosa!
Sopratutto per lui!
 

faiiiiiiiiiiiiiiiiii :D
 
Al limite ha dei conoscenti...
...che è cosa ben diversa!!!