Skip to main content
6-Contributor
November 11, 2021
Question

How to convert string to ProCharLine ?

  • November 11, 2021
  • 4 replies
  • 2252 views

Hello,

I am using "ProStringToWstring()" for that I have pass "ProCharLine" , but i have string which I want to Pass into "ProStringToWstring()".

But string not getting converted into "ProCharLine".

Please help if any one have solution to it.

4 replies

RPN
18-Opal
November 11, 2021

#define PRO_LINE_SIZE 81
typedef char ProCharLine[PRO_LINE_SIZE];

If you have a string/char just copy it, make sure not to exceed the size. 

6-Contributor
November 12, 2021

Hi,

Can you please  elaborate how to copy string to ProCharLine(), because I am getting problem while converting  string to ProCharLine().

 

RPN
18-Opal
November 12, 2021

ProCharLine line;

 

// You have no clue what is in that line, so init with NULL

line[0] = '\0';

// String no longer than 80 plus 'NULL'  

// tar,src 🙂

strcpy(line,"My String");

 

Read some basic C Tutorials 🙂

 

21-Topaz I
November 11, 2021

possibliy this macro execute example where I executed a  mapkey in old Creo  version will demonstrate it .

So one

 

////////////////// UPDATE ID with Mapkey
void update_note_id_with_mapkey(int id)
{

int i;
ProCharLine cmds[20];
ProName w_cmds;
char l[255],buff[255];
Log("\n ===> START Mapkey sequence for id = %d <===",id);

sprintf(cmds[ 0],"~ Activate `main_dlg_cur` `page_Review_control_btn` 1;");
sprintf(cmds[ 1],"~ Command `ProCmdDwgUpdateSheets` ;");
sprintf(cmds[ 2],"~ Activate `main_dlg_cur` `page_View_control_btn` 1;");
sprintf(cmds[ 3],"~ Command `ProCmdWinActivate` ;");
sprintf(cmds[ 4],"~ Activate `main_dlg_cur` `page_Annotate_control_btn` 1;");
sprintf(cmds[ 5],"~ Command `ProCmdMdlTreeSearch` ;~ Open `selspecdlg0` `SelOptionRadio`;");
sprintf(cmds[ 6],"~ Close `selspecdlg0` `SelOptionRadio`;");
sprintf(cmds[ 7],"~ Select `selspecdlg0` `SelOptionRadio` 1 `Annotation`;");
sprintf(cmds[ 8],"~ Select `selspecdlg0` `RuleTab` 1 `Misc`;");
sprintf(cmds[ 9],"~ Update `selspecdlg0` `ExtRulesLayout.ExtBasicIDLayout.InputIDPanel` `%d`;",id);
sprintf(cmds[10],"~ Activate `selspecdlg0` `EvaluateBtn`;~ Activate `selspecdlg0` `ApplyBtn`;");
sprintf(cmds[11],"~ Activate `selspecdlg0` `CancelButton`;");
sprintf(cmds[12],"~ Timer `UI Desktop` `UI Desktop` `popupMenuRMBTimerCB`;");
sprintf(cmds[13],"~ Close `rmb_popup` `PopupMenu`;~ Command `ProCmdEditProperties` ;");
sprintf(cmds[14],"~ FocusOut `note_text_asynch` `txt_note_text`;");
sprintf(cmds[15],"~ Activate `note_text_asynch` `psh_ok`; ");

for(i = 15; i>(-1); i--)
{ ProMacroLoad(ProStringToWstring(w_cmds,cmds[i]));
 sprintf(buff,"LINE SENT : %s",cmds[i]);
 print(buff);
}
print("\n ===> END Mapkey sequence <===");

 ProMacroExecute();
	}

 

So as see here one simple way to write string to this variable type is sprintf as shown in the sample code

17-Peridot
November 24, 2021

Hello,

 

this should work:

	ProCharLine charline;
	sprintf(charline, "test string");
	ProName wstring;
	ProStringToWstring(wstring, charline);
	//or:
	ProStringToWstring(wstring, "test string");
1-Visitor
January 3, 2022

Hi AI_10095062,

 

std::string modelName;
ProCharLine c_modelName;
wchar_t w_modelName[PRO_NAME_SIZE];
ProStringToWstring(w_modelName, c_modelName);

strcpy(c_modelName, modelName.c_str());
ProStringToWstring(w_modelName, (char*) modelName.c_str());

 

 

Just convert string to char_string by using the c_str() function. Then u can use it anywhere.