Menù Principale

Cerca
Login
Registrati
Link
<< Discussione precedente | Discussione successiva >>   
[Spostato] Concatenare stringhe

Vai a pagina       >>  
Autore Messaggio
Costa28
lun 18 ott 2010 - 20:02
online
Utente registrato #56
Registrato il: dom 21 gen 2007 - 10:18
Messaggi: 64

Salve a tutti.

Stò cercando di portabilizzare un software che mi sta facendo uscire di melone.

Il problema è il seguente.

In un campo del programma si deve scrivere la parte parametrica di una linea di comando di un altro software

La stringa che devo inserire è la seguente:

--best -V --tag-from-file="CUESHEET=cuesheet.cue"  --cuesheet="cuesheet.cue" --picture="spot.jpg" %s -o %d


Il programma salva detta stringa in una chiave di registro e naturalmente il tutto diventa:

--best -V --tag-from-file=\"CUESHEET=cuesheet.cue\"  --cuesheet=\"cuesheet.cue\" --picture=\"spot.jpg\" %s -o %d


Dove gli apici obbligatori vengono sostituiti da \"

Il problema è impostare i percorsi dei files relativi al percorso $Doc$ visto che:

"NomeChiave"="--best -V --tag-from-file=\"CUESHEET=$Doc$\\cuesheet.cue\"  --cuesheet=\"$Doc$\\cuesheet.cue\" --picture=\"$Doc$\\spot.jpg\" %s -o %d"


Non funzia. Cioè la stringa non viene inserita nel registro evidentemente per un errore di sintassi

E neppure così:
"NomeChiave"=--best -V --tag-from-file=\"CUESHEET=$Doc$\cuesheet.cue\"  --cuesheet=\"$Doc$\cuesheet.cue\" --picture=\"$Doc$\spot.jpg\" %s -o %d |"\\


Mi pare di avere capito che tra un doppio apice e l'altro, il problema è che non viene trasformata (o gestita) la variabile $Doc$.


Esiste la possibilità di "spezzare" ed incollare il comando a mo' di VB

Tipo "ciao" & nomepersona. Dove ciao è un testo e nomepersona è una variabile.

Grazie dell'aiuto
Torna ad inizio pagina
ZioZione
lun 18 ott 2010 - 22:54
online

Utente registrato #74
Registrato il: dom 21 gen 2007 - 11:31
Provenienza: Tradate (VA)
Messaggi: 3821
Ciao Costa28, bentornato
Premetto che non ho avuto tempo di provarla (quindi scusami se per caso non dovesse funzionare), ma la cosa più semplice, secondo me, potrebbe essere quella di definire una variabile di ambiente

[Environment]
MYDOC=$Doc$

e riscrivere la tua riga come segue

"NomeChiave"=--best -V --tag-from-file='CUESHEET=%MYDOC%\\cuesheet.cue' --cuesheet='%MYDOC%\\cuesheet.cue' --picture='%MYDOC%\\spot.jpg' %s -o %d|"/

Aiuterebbe sapere quale sia il programma, ma spero che vengano accettati anche i singoli apici... Altrimenti non vedo alternative all'utilizzo di StringRegExpReplace (per il quale, però ti rimando al manuale o a Danix e/o Energy... io ho ancora bisogno di un bel po' di studio per poterlo maneggiare con disinvoltura...)
Prova e facci sapere se hai risolto.
Cordialmente
ZioZione
Torna ad inizio pagina
Costa28
mar 19 ott 2010 - 09:08
online
Utente registrato #56
Registrato il: dom 21 gen 2007 - 10:18
Messaggi: 64
No, non funziona perchè ottengo questo:
--best -V --tag-from-file='CUESHEET=%MYDOC%//cuesheet.cue' --cuesheet='%MYDOC%//cuesheet.cue' --picture='%MYDOC%//spot.jpg' %s -o %d


Quindi niente apici singoli..

Quindi come vedi anche nel tuo caso non viene elaborata la variabile che viene scambiata come del banale testo probabilmente a causa degli apici obbligatori che la stringa contiene.

Per questo considero risolutiva la possibilità di concatenare stringhe e variabili.
--best -V --tag-from-file="CUESHEET= & $Doc$|/ & cuesheet.cue" ecc ecc naturalmente con gli opportuni delimitatori

Poi, scusa, quale sarebbe la differenza dal punto di vista dello script dall'usare $Doc$ o una environment generata dalla stessa?

Il programma è questo.

All'avvio F11 --> External compression --> Additional command-line options

Grazie
Torna ad inizio pagina
LordJim60
mar 19 ott 2010 - 12:23

online
Utente registrato #33962
Registrato il: sab 18 lug 2009 - 08:45
Provenienza: Roma
Messaggi: 1147
scusate l'intromissione, secondo me c'è un secondo approccio al problema, ovvero di scrivere nel file .reg la chiave corretta con un path compatibile con la suite wpp, es:
-best -V --tag-from-file=\"CUESHEET=H:\wpp\winPenPack\Documents\ExactAudioCopy\cuesheet.cue\" --cuesheet=\"H:\wpp\winPenPack\Documents\ExactAudioCopy\cuesheet.cue\" --picture=\"H:\wpp\winPenPack\Documents\ExactAudioCopy\spot.jpg\" %s -o %d

e poi applicare la StringRegExpReplace sul file con qualcosa del genere:

[StringRegExpReplace=$Home$\$AppName$\$AppName$.reg]
<<RE>>|0|\\=(@=").+(\\\\Documents\\\\{$AppName$}\\\\)<<RE>>$1{$Doc$}$2


Non prendere per oro colato l'istruzione precedente, la devi adattare al tuo caso.

PS) Il post del file INI aiuterebbe...


[ Modificato mar 19 ott 2010 - 13:04 ]
Torna ad inizio pagina
Costa28
mar 19 ott 2010 - 17:27
online
Utente registrato #56
Registrato il: dom 21 gen 2007 - 10:18
Messaggi: 64
LordJim60 ha scritto ...

scusate l'intromissione, secondo me c'è un secondo approccio al problema, ovvero di scrivere nel file .reg la chiave corretta con un path compatibile con la suite wpp, es:
-best -V --tag-from-file=\"CUESHEET=H:\wpp\winPenPack\Documents\ExactAudioCopy\cuesheet.cue\" --cuesheet=\"H:\wpp\winPenPack\Documents\ExactAudioCopy\cuesheet.cue\" --picture=\"H:\wpp\winPenPack\Documents\ExactAudioCopy\spot.jpg\" %s -o %d

e poi applicare la StringRegExpReplace sul file con qualcosa del genere:

[StringRegExpReplace=$Home$\$AppName$\$AppName$.reg]
<<RE>>|0|\\=(@=").+(\\\\Documents\\\\{$AppName$}\\\\)<<RE>>$1{$Doc$}$2


Non prendere per oro colato l'istruzione precedente, la devi adattare al tuo caso.

PS) Il post del file INI aiuterebbe...



Ollapeppaaaaaaa

La tua intromissione è ben gradita !!!

Allora... andiamo per gradi...

Mi pare di capire che tu hai una profonda conoscenza sulla funzione stringreplace, cosa che a me appare molto ostica, sopratutto quando si tratta di muoversi tra i backslash...

L'estrema ratio del sistema da te proposto l'avevo pensata anch'io ma, mi pare comunque una complicazione della vita.

Io pensavo, in uscita dal programma, di resettare la chiave del registro con qualcosa di questo tipo:
-best -V --tag-from-file=\"CUESHEET=H:\cuesheet.cue\" --cuesheet=\"H:\cuesheet.cue\" --picture=\"H:\spot.jpg\" %s -o %d

In modo che, all'avvio, dovrei "solamente sostituire H: con $Doc$.

Però, lo ripeto, mi sembra una soluzione di ripirgo e poco elegante.

Azzzzzzzz

Ora che leggo meglio il tuo post...what's StringRegExpReplace?

Nel tutorial in mio possesso non è menzionato.
Esiste una versione recente da poter scaricare?

Una mia richiesta tempo fa nel senso aveva avuto risposta... non c'è tempo per fare un manuale della nuova versione.

P.S. Se hai 5 minuti mi spiegli cosa significa questo: <<RE>>|0|\\=(@=").+(\\\\Documents\\\\{$AppName$}\\\\)<<RE>>$1{$Doc$}$2

Grazie

[ Modificato mar 19 ott 2010 - 17:39 ]
Torna ad inizio pagina
LordJim60
mar 19 ott 2010 - 17:39

online
Utente registrato #33962
Registrato il: sab 18 lug 2009 - 08:45
Provenienza: Roma
Messaggi: 1147
La documentazione è stata aggiornata -Link-
Torna ad inizio pagina
Costa28
mar 19 ott 2010 - 18:07
online
Utente registrato #56
Registrato il: dom 21 gen 2007 - 10:18
Messaggi: 64
Grazie ma.... per me è arabo!!

Vedi se riesci a scrivere qualcosa che mi sostituisca H: con $Doc$

Grazie
Torna ad inizio pagina
LordJim60
mar 19 ott 2010 - 19:02

online
Utente registrato #33962
Registrato il: sab 18 lug 2009 - 08:45
Provenienza: Roma
Messaggi: 1147
posta il tuo ini e se c'è il .reg

[ Modificato mar 19 ott 2010 - 19:02 ]
Torna ad inizio pagina
Costa28
mar 19 ott 2010 - 19:20
online
Utente registrato #56
Registrato il: dom 21 gen 2007 - 10:18
Messaggi: 64
Eccoli

INI
Spoiler:



HKCU.reg
Spoiler:


--- edit zandet2 ---
@Costa28, scusa l'intromissione,
ho leggermente modificato il tuo post inserendo i due "file" nel tag spoiler per una questione di leggibilità.
Ciao!


[ Modificato mar 19 ott 2010 - 20:23 ]
Torna ad inizio pagina
LordJim60
mer 20 ott 2010 - 10:37

online
Utente registrato #33962
Registrato il: sab 18 lug 2009 - 08:45
Provenienza: Roma
Messaggi: 1147
c'è qualcosa che non mi convince, tu hai postato il file HKCU.reg ma nel tuo INI, tu applichi le modifiche a ResetPercorsi.reg in $temp$ e poi carichi il file di registro HKCU.reg.... che non hai mai alterato e subito dopo ResetPercorsi
ResetPercorsi.reg e HKCU.reg sono uguali e il file INI che hai postato è il risultato di più di una prova?

Chi scrive ResetPercorsi in temp?

Costa28 ha scritto ...

[WriteToReg=$Temp$\ResetPercorsi.reg]
[omississ]
Compression Options|"ExternalEncoderOptions"=--best -V --tag-from-file=\"CUESHEET=%MYDOC%\cuesheet.cue\" --cuesheet=\"%MYDOC%\cuesheet.cue\" --picture=\"%MYDOC%\spot.jpg\" %s -o %d|"\\

[omississ]


[RunBefore]

RegEdit=$Home$\$AppName$\HKCU.reg
RunFile= regedit.exe -s "$Temp$\ResetPercorsi.reg"


Torna ad inizio pagina

Vai a pagina       >>  
Moderatori: Danix, Taf, Rcs, Energy, zandet2, ZioZione, Admin, LordJim60

Salta:     Torna ad inizio pagina

RSS discussione: rss 0.92 RSS discussione: rss 2.0 RSS discussione: RDF
Powered by e107 Forum System