MHK
20th July 2008 14:17 UTC
more than 8192 (long string )?
dear all,
is there string larger than 8192 length special build?
i have string more than 8192 length and i would print it in the details bar.
how could i retrieve more than 8192 length in one string?
and if i can't how this string can be split into 2 or 3 strings?
LoRd_MuldeR
20th July 2008 14:20 UTC
I think you can set the size of strings when you compile NSIS yourself. The pre-compiled build uses string length 1024, the long-string build uses 8192. For more you'd require your own custom build...
But how in the world do you want to show such an enormous string in the details bar?
MHK
20th July 2008 14:34 UTC
1. how it could be done?
2. DetailPrint $0
Originally posted by LoRd_MuldeR
I think you can set the size of strings when you compile NSIS yourself. The pre-compiled build uses string length 1024, the long-string build uses 8192. For more you'd require your own custom build...
But how in the world do you want to show such an enormous string in the details bar?
[B]
LoRd_MuldeR
20th July 2008 14:43 UTC
I know how to print strings using DetailPrint, but printing such a long string makes no sens to me, because most of the string would be truncate anyway.
Compile instructions are here:
http://nsis.sourceforge.net/Docs/AppendixG.html
You'd have to adjust NSIS_MAX_STRLEN to whatever you need...
MHK
20th July 2008 15:00 UTC
ok this is my fault
i want to do the following:
nsExec::ExecToStack '"$Temp\osql.exe" -S ${ServerName} -d ${Database} -U ${User} -P ${Password} -i "$TEMP\sqls\${SqlFile}" -n'
Pop $1
DetailPrint "$1"
Pop $1
DetailPrint "$1"
now some time the SQL server return large string (result for example)
i must see this result and make it pass into function to make sure from it.
imagine if i have table of 30000 record and i want to update it
the result would be something like:
.
.
.
(0 rows affected)
(0 rows affected)
(0 rows affected)
(0 rows affected)
.
.
.
--- around 30000 line ----
dose it sens now?
if you have another solution plz tell me!
Originally posted by LoRd_MuldeR
I know how to print strings using DetailPrint, but printing such a long string makes no sens to me, because most of the string would be truncate anyway.
Compile instructions are here:
http://nsis.sourceforge.net/Docs/AppendixG.html
You'd have to adjust NSIS_MAX_STRLEN to whatever you need...
LoRd_MuldeR
20th July 2008 15:12 UTC
I see.
But still "DetailPrint $1" with a string that is 8192 chars in length (or even more) doesn't make sens. The string will be truncated and you'll only see a part of it in the log...
MHK
20th July 2008 15:22 UTC
right click and copy to clip board will solve this.
see the attached file, this is the log after the installation finish
see line '956' the string interrupted!! the string start at line '817'
what do you think now?
Originally posted by LoRd_MuldeR
I see.
But still "DetailPrint $1" with a string that is 8192 chars in length (or even more) doesn't make sens. The string will be truncated and you'll only see a part of it in the log...
[B]
LoRd_MuldeR
20th July 2008 15:56 UTC
Hmm, I see.
Well, if you need to handle strings longer than 8192 chars, then you'll have to compile NSIS with NSIS_MAX_STRLEN set to whatever you need...
There is no other way, I think :confused: