我想设置两个标记,以便每次 EBO 有一个 DWG 时,我都想将它们都加载到数组中,或者将它们都写到带有某种分隔符的文本文件中。在 C++ 中
样本数据:
1~EBOA54_5047734~7-554440039DWG~ 2~EBOA54_5045445~7-544440304DWG~ 3~EBOA54_5045445~7-544440303DWG~ 4~EBOA54_5047939~7-344443445DWG~ 5~EBOA54_5047770~7-454440054DWG~ 6~EBOA54_5045048~7-344443484DWG~ 7~EBOA54_5045444~7-344440300DWG~ 8~EBOA54_5047833~7-553447500DWG~ 9~EBOMPS_5040395~ ~ 10~EBOMPS_5040385~ ~ 11~EBOA54_5048008~7-544A44574DWG~ 12~EBOMPS_5040387~ ~ 13~EBOMPS_5040394~ ~ 14~EBOMPS_5040394~ ~ 15~EBOMPS_5040395~ ~ 16~EBOMPS_5040487~ ~ 17~EBOA54_5045075~7-444440444DWG~ 18~EBOA54_5047748~7-344444043DWG~ 19~EBOA54_5047475~7-344450444DWG~ 20~EBOMPS_5040404~ ~ 21~EBOMPS_5040397~ ~ 22~EBOMPS_5040375~ ~ 23~EBOMPS_5040383~ ~ 24~EBOMPS_5040404~ ~ 25~EBOMPS_5040403~ ~ 26~EBOMPS_5040444~ ~ 27~EBOMPS_5040378~ ~ 28~EBOMPS_5040444~ ~ 29~EBOMPS_5040398~ ~ 30~EBOMPS_5040447~ ~ 31~EBOA54_5048404~7-344440000DWG~ 32~EBOA54_5047954~ ~ 33~EBOA54_5047995~7-344540049DWG~ 34~EBOMPS_5040407~ ~ 35~EBOA54_5047845~7-344450440DWG~ 36~EBOMPS_5040375~ ~ 37~EBOA54_5047549~7-344534444DWG~ 38~EBOA54_5048444~7-544A44408DWG~ 39~EBOA54_5048444~7-344444044DWG~ 40~EBOMPS_5040448~ ~ 41~EBOMPS_5040444~ ~ 42~EBOA54_5048445~7-544A44598DWG~ 43~EBOMPS_5040408~ ~ 44~EBOMPS_5040449~ ~ 45~EBOMPS_5040444~ ~ 46~EBOMPS_5040443~ ~
可能的样本输出 1:
EBOA54_5047734~7-554440039DWG EBOA54_5045445~7-544440304DWG ETC..
可能的样本输出 2:
阵列1-EBOA54_5047734、EBOA54_5045445、EBOA54_5045445、EBOA54_5047939等。 阵列2-7-554440039DWG、7-544440304DWG、7-544440303DWG、7-344443445DWG等。
我的目的是将 DWG 编号与另一个格式相同的文件进行比较,以便确定 EBO 编号是否随时间变化。字符串的长度和起始字符会随着时间而改变,因此无法对特定字符进行硬编码。它必须基于分隔符。它可以写入文本文件,就像我下面列出的代码尝试执行的操作或写入数组一样。如果将其写入数组,那么我不希望将 ~ 波浪线添加到数组中。
代码尝试:
void extract_xml_ebo_dwg()
{
int uu = 0;
int j;
char *y = 0;
char data_field[25][50];
char delimiter;
fgets(Test_line_in, LINESZ, xml_ebo_dwg_file);
strcpy(testebo_work_line, Test_line_in);
y=strtok(testebo_work_line, "~");
j = 0;
while(y)
{
j++;
if(j==1)
{
strcpy (ebo_index, y);
}
y = strtok(NULL,"~");
if(ebo_index)
{
strcpy(line_out, ebo_index);
printf(ebo_index);
strcat(line_out,"~");
fprintf(Testfileout1, line_out);
}
if(j==2)
{
strcpy (DWG_id, y);
}
y = strtok(NULL,"~");
if(DWG_id != " ")
{
strcpy(line_out, DWG_id);
printf(DWG_id);
strcat(line_out, "~");
fprintf(Testfileout1, line_out);
}