Newsgroup: it.comp.lang.visual-basic
Titolo: [?][Command] Nome LUNGO del file

Oh, cominciamo con le domande di oggi :)
Associo la mia estensione al file. Non ho ancora risolto le peripezie
delle icone associate al tipo del file, comunque se doppioclicco su
un'icona, viene aperto il mio programma con il nome del file come
parametro. Peccato che sia il nome breve e non il nome lungo e per me
e' *fondamentale* ricevere o poter risalire al nome per esteso del
file, in quanto il nome file e' costruito partendo dal contenuto di
alcune textbox che devo poi ripristinare quando apro il file.
Come faccio a ricostruire il nome file lungo partendo da quell'idiota
che ricevo, tipo 103510~1.lbr?
Al solito, grazie in anticipo.
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-IV --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD

 che ricevo, tipo 103510~1.lbr?
Se usi w2k o w98-Me allora c'e' la funzione dell' api gia' pronta della
kernel32:
DWORD GetLongPathName(
  LPCTSTR lpszShortPath, // file name
  LPTSTR lpszLongPath,   // path buffer
  DWORD cchBuffer        // size of path buffer
);
Guarda su msdn per i dettagli, se occorre, comunque restituisce la lunhgezza
della stringa scritta (o da scrivere, se il buffer e' troppo piccolo),
oppure 0 se fallisce.
Se giri sotto s.o. precedenti puoi prenderti pari pari il codice del setup
wizard di vb nel modulo Common.bas, dove troverai una funzione con lo stesso
nome.
Ciao
Aldo

nome.
No, sto in W98se e il target sara' NT/2k.
Saluti e grazie.


Mi risulta che questo sia dovuto alla mancanza delle doppie ".
In sostanza se scrivi %1 ti ritorna il nome corto "%1" ti ritorna il nome
lungo.
Non so' se ti e' utile anche coll'associazione file-programmi.
Salve
            Dbg
Gianni Rondinini ha scritto nel messaggio ...


Non so' se ti e' utile anche coll'associazione file-programmi.
No, purtroppo no. Ho controllato mettendo a manazza nel registro i
doppi apici ma non cambiava nulla.
Grazie comunque.


 doppi apici ma non cambiava nulla.
se sei disposto a mettere mani nel registro puoi passare un
"%s" o "%l" al posto del "%1"
se non ricordo male ti passa il nome lungo del file
--
Fibia "Sakamoto" FBI
URL: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
E-Mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Membro #25 delle Brigate Takahashi Sez. Sud

 doppi apici ma non cambiava nulla.
se sei disposto a mettere mani nel registro puoi passare un


che ricevo, tipo 103510~1.lbr?
Avevo anch'io lo stesso problema, poi, grazie anche a Faber, ho risolto con questa funzione:
Public Function NomeLungo(ByVal strShortPath As String) As String
    Dim strResult As String
    Dim BSPos As Integer
    BSPos = InStr(4, strShortPath, "\")
    strResult = Left$(strShortPath, 3)
    Do Until BSPos = 0
        strResult = strResult & Dir$(Left$(strShortPath, BSPos - 1),
vbDirectory) & "\"
        BSPos = InStr(BSPos + 1, strShortPath, "\")
    Loop
    NomeLungo = strResult & Dir$(strShortPath, vbDirectory)
End Function
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

se non ricordo male ti passa il nome lungo del file
Ok per il %l.
Perfettissimo :)
Saluti che ho quasi risolto :)


Avevo anch'io lo stesso problema, poi, grazie anche a Faber, ho risolto con questa funzione:
Ok, la funzione me la sono salvata e ti ringrazio.
Comunque ho visto che mettendo nel registry %l --L minuscola--
anziche' %1 ottengo il nome lungo.


anziche' %1 ottengo il nome lungo.
perņ... buono a sapersi... a me serviva comunque elaborare il Command() e lģ, corto o lungo che sia,
ti restituisce sempre corto...


ti restituisce sempre corto...
Infatti se non consideriamo il semplice caso di nomi di files, e'
meglio lavorare con tutta la command, di cui si fara' l'elaborazione.
Pero' nell'unico caso di mio interesse, cosi' ho fatto ancora prima.
Saluit.


 Pero' nell'unico caso di mio interesse, cosi' ho fatto ancora prima.
ok per il tuo caso, ma fossi in te non mi fiderei troppo del
registry... a volte i programmi fanno evoluzioni non previste :((


registry... a volte i programmi fanno evoluzioni non previste :((
Questo e' vero. Pero', nel mio caso, all'avvio faccio queste
operazioni:
- controllo se l'estensione e' registrata
- se non la e', la registro e quindi sistemo di sicuro bene le cose
- se e' registrata dal mio programma, tutto ok.
- se e' registrata da un altro programma, formatto senza chiedere
conferma il disco fisso ;). Poi mi approprio dell'estensione :)
Diciamo che sono relativamente tranquillo.
Comunque mettero' un ulteriore controllo sulla command seguendo la
procedura consigliata da Moreno.
Saluti
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro RomagnoloŽ, diffidate dalle imitazioni!


 che ricevo, tipo 103510~1.lbr?
A me non dà questi problemi...