opensubscriber
   Find in this group all groups
 
Unknown more information…

d : delphi@delphi.org.nz 27 June 2011 • 6:07AM -0400

Re: [DUG] Variable in String
by Jolyon Smith

REPLY TO AUTHOR
 
REPLY TO GROUP




Sorry Bob, I meant to include an example of your code tweaked to use “raw” a char array with the Windows API routine.  Here it is (this version displays results rather than storing in a variable, but you get the idea J ) :



var

  dir: array of Char;

  s: String;

begin

  s := ‘’;



  SetLength(dir, MAX_PATH + 1);

  if Succeeded(SHGetFolderPath(0, CSIDL_Program_Files, 0, 0, @dir[0])) then

    s := PChar(dir);



  ShowMessageFmt(s + ' (%d chars)', [Length(s)]);



  // Outcome:  s has both the right length *and* is null terminated correctly

end;





From: delphi-bounces@delp... [mailto:delphi-bounces@delp...] On Behalf Of Bob Pawley
Sent: Monday, 27 June 2011 08:58
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] Variable in String



Hi Jolyon



I was wondering if my problem is a conflict between how I derive the value of the variable (PAnsiChar).



Here is the code for doing that.



SetLength(sDir, MAX_PATH);

ZeroMemory(@sDir[1], MAX_PATH);

if Succeeded(SHGetFolderPath(0, CSIDL_Program_Files, 0, 0, PAnsiChar(sDir))) then

FW_Path := sDir;



Bob



From: Jolyon Smith <mailto:jsmith@delt...>  

Sent: Wednesday, June 22, 2011 3:49 PM

To: 'NZ Borland Developers Group - Delphi List' <mailto:delphi@delp...>  

Subject: Re: [DUG] Variable in String



Don’t quote FW_Path element of the program path – you need to quote the entire path AND program file name when/if any part of the path or the filename itself does – or may – contain spaces:



e.g.   “path a\sub a\sub b\prog.exe”



not   “path a”\sub\prog.exe





So in your case, this should do the trick:



   FW_Path     := X;  

   DXF         := openDialog1.FileName;        

   ProgramName := ‘”’ + FW_Path + '\FWTools2.4.7\bin\ogr2ogr” "-f" "PostgreSQL" PG:"host=192........ user=postgres dbname=E5R password=........" "'+ DXF +'" -nln Import_Process';

   ShowMessage(ProgramName);





hth



From: delphi-bounces@delp... [mailto:delphi-bounces@delp...] On Behalf Of Bob Pawley
Sent: Thursday, 23 June 2011 10:30
To: DUG
Subject: [DUG] Variable in String



Hi



I’m having trouble with using a variable in a string path.



When I use the variable FW_Path := ‘C:\Program Files (x86)’ with two single quotes, the following works well and ShowMessage(ProgramName); displayed the full path .



When I reference FW_Path to a variable X I get an error returned “Can Not run....” The variable  X is returned as C:\Program Files (x86) without quotes.



I attempted Quote String and got the following ‘C:\Program Files (x86) with one single quote.



Both cases return the same error - and in both cases ShowMessage(ProgramName); displayed none of the path after C:\Program Files (x86).



Help would be appreciated.



Bob



   FW_Path := QuoteStr(X);  

  DXF  := openDialog1.FileName;        

  ProgramName :=FW_Path+'\FWTools2.4.7\bin\ogr2ogr "-f" "PostgreSQL" PG:"host=192........ user=postgres dbname=E5R password=........" "'+ DXF +'" -nln Import_Process';

       ShowMessage(ProgramName);

  _____  

_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delp...
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-request@delp... with Subject: unsubscribe


Bookmark with:

Delicious   Digg   reddit   Facebook   StumbleUpon

Related Messages

opensubscriber is not affiliated with the authors of this message nor responsible for its content.