Main menu

Search
Login
Signup
Links
<< Previous thread | Next thread >>   
[Spostato] Concatenare stringhe

Go to page       >>  
Author Post
Costa28
Mon 18 Oct 2010 - 20:02
online
Registered Member #56
Joined: Sun 21 Jan 2007 - 10:18
Posts: 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
Back to top
ZioZione
Mon 18 Oct 2010 - 22:54
online

Registered Member #74
Joined: Sun 21 Jan 2007 - 11:31
Location: Tradate (VA)
Posts: 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
Back to top
Costa28
Tue 19 Oct 2010 - 09:08
online
Registered Member #56
Joined: Sun 21 Jan 2007 - 10:18
Posts: 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
Back to top
LordJim60
Tue 19 Oct 2010 - 12:23

online
Registered Member #33962
Joined: Sat 18 Jul 2009 - 08:45
Location: Roma
Posts: 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...


[ Edited Tue 19 Oct 2010 - 13:04 ]
Back to top
Costa28
Tue 19 Oct 2010 - 17:27
online
Registered Member #56
Joined: Sun 21 Jan 2007 - 10:18
Posts: 64
LordJim60 wrote ...

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

[ Edited Tue 19 Oct 2010 - 17:39 ]
Back to top
LordJim60
Tue 19 Oct 2010 - 17:39

online
Registered Member #33962
Joined: Sat 18 Jul 2009 - 08:45
Location: Roma
Posts: 1147
La documentazione è stata aggiornata -Link-
Back to top
Costa28
Tue 19 Oct 2010 - 18:07
online
Registered Member #56
Joined: Sun 21 Jan 2007 - 10:18
Posts: 64
Grazie ma.... per me è arabo!!

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

Grazie
Back to top
LordJim60
Tue 19 Oct 2010 - 19:02

online
Registered Member #33962
Joined: Sat 18 Jul 2009 - 08:45
Location: Roma
Posts: 1147
posta il tuo ini e se c'è il .reg

[ Edited Tue 19 Oct 2010 - 19:02 ]
Back to top
Costa28
Tue 19 Oct 2010 - 19:20
online
Registered Member #56
Joined: Sun 21 Jan 2007 - 10:18
Posts: 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!


[ Edited Tue 19 Oct 2010 - 20:23 ]
Back to top
LordJim60
Wed 20 Oct 2010 - 10:37

online
Registered Member #33962
Joined: Sat 18 Jul 2009 - 08:45
Location: Roma
Posts: 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 wrote ...

[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"


Back to top

Go to page       >>  
Moderators: Danix, Taf, Rcs, Energy, zandet2, ZioZione, Admin, LordJim60

Jump:     Back to top

Syndicate this thread: rss 0.92 Syndicate this thread: rss 2.0 Syndicate this thread: RDF
Powered by e107 Forum System