hello all,
I want to set vartext in symbol.here is the codes,but it can't set the vertext.
/*========================================================== =================*\
Function : ProTestVarTextSet
Purpose :
\*========================================================== =================*/
ProError ProTestVarTextSet (ProDrawing drw,
ProDtlsymdef
symbol,
ProDtlsyminstdata
inst_data)
{
ProError err;
ProDtlnote *p_notes;
ProDtlnoteline *p_lines ;
ProDtlnotetext *p_texts ;
ProLine line, value;
ProCharLine string, text;
ProDtlnotedata note_data;
ProDtlvartext var_text, *p_var_texts;
int n_notes = 0, n_lines = 0, n_texts = 0, n_var_texts = 0, i, j, k;
printf("I am here!");
err = ProDrawingDtlnotesCollect (drw, &symbol, PRO_VALUE_UNUSED,
&p_notes);
TEST_CALL_REPORT("ProDrawingDtlnotesCollect()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR
&& err != PRO_TK_E_NOT_FOUND);
if (err != PRO_TK_NO_ERROR)
return (err);
err = ProArrayAlloc (0, sizeof (ProDtlvartext), 1,
(ProArray*)&p_var_texts);
err = ProArraySizeGet ((ProArray)p_notes, &n_notes);
for (i = 0; i < n_notes; i++)
{
err = ProDtlnoteDataGet (&p_notes, &symbol,
PRODISPMODE_NUMERIC,
¬e_data);
TEST_CALL_REPORT("ProDtlnoteDataGet()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
if (err != PRO_TK_NO_ERROR)
return (err);
err = ProDtlnotedataLinesCollect (note_data, &p_lines);
TEST_CALL_REPORT("ProDtlnotedataLinesCollect()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR
&& err !=
PRO_TK_E_NOT_FOUND);
if (err == PRO_TK_NO_ERROR)
{
err = ProArraySizeGet ((ProArray)p_lines, &n_lines);
for (j = 0; j < n_lines; j++)
{
err =
ProDtlnotelineTextsCollect (p_lines[j], &p_texts);
TEST_CALL_REPORT("ProDtlnotelineTextsCollect()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR
&& err !=
PRO_TK_E_NOT_FOUND);
if (err == PRO_TK_NO_ERROR)
{
err = ProArraySizeGet
((ProArray)p_texts, &n_texts);
for (k = 0; k < n_texts;
k++)
{
err =
ProDtlnotetextStringGet (p_texts[k], line);
TEST_CALL_REPORT("ProDtlnotetextStringGet()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
ProWstringToString (string,
line);
printf(string);
if(string[3]=='\\'
&& string[strlen(string)-2]=='\\')
{
sprintf
(text,"Enter instance text for %s",string);
ProUtilMsgPrint("gen", "TEST %0s", text);
ProStringToWstring
(line, text);
memset (text, '\0',
sizeof (ProCharLine));
printf(text);
printf("hhh");
ProStringToWstring (line,
strncpy (text,
&string[4],
strlen(&string[4])-2));
if
(ProMessageStringRead (PRO_LINE_SIZE, value) !=
PRO_TK_NO_ERROR)
break;
err =
ProDtlvartextAlloc (line, value, &var_text);
TEST_CALL_REPORT("ProDtlvartextAlloc()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
err =
ProArrayObjectAdd( (ProArray*)&p_var_texts,
PRO_VALUE_UNUSED, 1, &var_text);
}
}
for (k = 0; k < n_texts;
k++)
{
err =
ProDtlnotetextFree (p_texts[k]);
TEST_CALL_REPORT("ProDtlnotetextFree()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
}
err = ProArrayFree
((ProArray*)&p_texts);
}
}
for (j = 0; j < n_lines; j++)
{
err = ProDtlnotelineFree
(p_lines[j]);
TEST_CALL_REPORT("ProDtlnotelineFree()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
}
err = ProArrayFree ((ProArray*)&p_lines);
}
}
err = ProArrayFree ((ProArray*)&p_notes);
err = ProArraySizeGet ((ProArray)p_var_texts, &n_var_texts);
if (err == PRO_TK_NO_ERROR && n_var_texts != 0)
{
err = ProDtlsyminstdataVartextsSet (inst_data, p_var_texts);
TEST_CALL_REPORT("ProDtlsyminstdataVartextsSet()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
err = ProArrayFree ((ProArray*)&p_var_texts);
}
else
return (PRO_TK_NO_CHANGE);
return PRO_TK_NO_ERROR;
}
I want to set vartext in symbol.here is the codes,but it can't set the vertext.
/*========================================================== =================*\
Function : ProTestVarTextSet
Purpose :
\*========================================================== =================*/
ProError ProTestVarTextSet (ProDrawing drw,
ProDtlsymdef
symbol,
ProDtlsyminstdata
inst_data)
{
ProError err;
ProDtlnote *p_notes;
ProDtlnoteline *p_lines ;
ProDtlnotetext *p_texts ;
ProLine line, value;
ProCharLine string, text;
ProDtlnotedata note_data;
ProDtlvartext var_text, *p_var_texts;
int n_notes = 0, n_lines = 0, n_texts = 0, n_var_texts = 0, i, j, k;
printf("I am here!");
err = ProDrawingDtlnotesCollect (drw, &symbol, PRO_VALUE_UNUSED,
&p_notes);
TEST_CALL_REPORT("ProDrawingDtlnotesCollect()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR
&& err != PRO_TK_E_NOT_FOUND);
if (err != PRO_TK_NO_ERROR)
return (err);
err = ProArrayAlloc (0, sizeof (ProDtlvartext), 1,
(ProArray*)&p_var_texts);
err = ProArraySizeGet ((ProArray)p_notes, &n_notes);
for (i = 0; i < n_notes; i++)
{
err = ProDtlnoteDataGet (&p_notes, &symbol,
PRODISPMODE_NUMERIC,
¬e_data);
TEST_CALL_REPORT("ProDtlnoteDataGet()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
if (err != PRO_TK_NO_ERROR)
return (err);
err = ProDtlnotedataLinesCollect (note_data, &p_lines);
TEST_CALL_REPORT("ProDtlnotedataLinesCollect()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR
&& err !=
PRO_TK_E_NOT_FOUND);
if (err == PRO_TK_NO_ERROR)
{
err = ProArraySizeGet ((ProArray)p_lines, &n_lines);
for (j = 0; j < n_lines; j++)
{
err =
ProDtlnotelineTextsCollect (p_lines[j], &p_texts);
TEST_CALL_REPORT("ProDtlnotelineTextsCollect()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR
&& err !=
PRO_TK_E_NOT_FOUND);
if (err == PRO_TK_NO_ERROR)
{
err = ProArraySizeGet
((ProArray)p_texts, &n_texts);
for (k = 0; k < n_texts;
k++)
{
err =
ProDtlnotetextStringGet (p_texts[k], line);
TEST_CALL_REPORT("ProDtlnotetextStringGet()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
ProWstringToString (string,
line);
printf(string);
if(string[3]=='\\'
&& string[strlen(string)-2]=='\\')
{
sprintf
(text,"Enter instance text for %s",string);
ProUtilMsgPrint("gen", "TEST %0s", text);
ProStringToWstring
(line, text);
memset (text, '\0',
sizeof (ProCharLine));
printf(text);
printf("hhh");
ProStringToWstring (line,
strncpy (text,
&string[4],
strlen(&string[4])-2));
if
(ProMessageStringRead (PRO_LINE_SIZE, value) !=
PRO_TK_NO_ERROR)
break;
err =
ProDtlvartextAlloc (line, value, &var_text);
TEST_CALL_REPORT("ProDtlvartextAlloc()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
err =
ProArrayObjectAdd( (ProArray*)&p_var_texts,
PRO_VALUE_UNUSED, 1, &var_text);
}
}
for (k = 0; k < n_texts;
k++)
{
err =
ProDtlnotetextFree (p_texts[k]);
TEST_CALL_REPORT("ProDtlnotetextFree()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
}
err = ProArrayFree
((ProArray*)&p_texts);
}
}
for (j = 0; j < n_lines; j++)
{
err = ProDtlnotelineFree
(p_lines[j]);
TEST_CALL_REPORT("ProDtlnotelineFree()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
}
err = ProArrayFree ((ProArray*)&p_lines);
}
}
err = ProArrayFree ((ProArray*)&p_notes);
err = ProArraySizeGet ((ProArray)p_var_texts, &n_var_texts);
if (err == PRO_TK_NO_ERROR && n_var_texts != 0)
{
err = ProDtlsyminstdataVartextsSet (inst_data, p_var_texts);
TEST_CALL_REPORT("ProDtlsyminstdataVartextsSet()",
"ProTestVarTextSet()", err, err != PRO_TK_NO_ERROR);
err = ProArrayFree ((ProArray*)&p_var_texts);
}
else
return (PRO_TK_NO_CHANGE);
return PRO_TK_NO_ERROR;
}