swr0001添加新文件-recipe保存时索引出错-root cause

此处异常:

//outfile1 << all_names.name << "    " << all_names.file << std::endl;
            strcpy(name_array[i], all_names.name);
            strcpy(file_array[i], all_names.file);
            //std::string cc = "AH008-12-180-CMA4220EBL7C";//?????20200119 find abnormal-txwtech
            //strcpy(name_array[89], cc.c_str());//?????20200119 find abnormal-txwtech
            all_names.name[0] = NULL;
            all_names.file[0] = NULL;

int xdirectory(int device)
{
	static int tt = 0;
	FILE    *in;
	int     i, j, k;
	char    temp_string[XMAX_FILE_LENGTH + 1], temp_string2[XMAX_FILE_LENGTH + 1];

// 	std::string filename1 = "C:\\MY511DATA\\XXX1.txt";
// 	std::string filename2 = "C:\\MY511DATA\\XXX2.txt";
// 	std::ofstream outfile1( filename1.c_str(), std::ios_base::app );
// 	std::ofstream outfile2( filename2.c_str(), std::ios_base::app );

	

	create_index_file(device);

	switch (device)
	{ 
	case ADEVICE :
	case CDEVICE :
	case WDEVICE :
	case OPDEVICE:
	case MUDEVICE:
	case CHDEVICE:
		in = fopen(file, "rb");
		i = 1;
		do
		{ 
			fread(&all_names ,sizeof(all_names) ,1 ,in);
			
			fgetc(in);
			fgetc(in);
			
			if (i == 90 && tt == 0)
			{
				tt++;
				all_names.name[0] = NULL;
				all_names.file[0] = NULL;
				fread(&all_names ,sizeof(all_names) ,1 ,in);

				fgetc(in);
				fgetc(in);
			}
			//outfile1 << all_names.name << "    " << all_names.file << std::endl;
			strcpy(name_array[i], all_names.name);
			strcpy(file_array[i], all_names.file);
			//std::string cc = "AH008-12-180-CMA4220EBL7C";//?????20200119 find abnormal-txwtech
			//strcpy(name_array[89], cc.c_str());//?????20200119 find abnormal-txwtech
			all_names.name[0] = NULL;
			all_names.file[0] = NULL;

			i++;
		} while (!feof(in) && (i < MAX_FILES));
		fclose(in);

		// Sorting
		for (j = 2; j <= (i-2); j++)
		{ 
			strcpy(temp_string,  name_array[j]);
			strcpy(temp_string2, file_array[j]);
			for (k = (j-1); k != 0; k--)
			{ 
				if (strnicmp(temp_string, name_array[k], XMAX_FILE_LENGTH) < 0)
				{ 
					strcpy(name_array[k+1], name_array[k]);
					strcpy(file_array[k+1], file_array[k]);
				}
				else 
					break;
			};
			strcpy(name_array[k+1], temp_string);
			strcpy(file_array[k+1], temp_string2);
		}

		return(i - 2);
	case MDEVICE :
	case SDEVICE : 
		strcpy(name_array[1], default_device_name);
		strcpy(file_array[1], default_device_name);
		return(1);
	default      : 
		return(1);
	}
}
发布了356 篇原创文章 · 获赞 186 · 访问量 89万+

猜你喜欢

转载自blog.csdn.net/txwtech/article/details/104040532