0x016FC30B 5b 73 68 6f 70 5d 0d 0a 63 6f 64 65 20 3d 20 31 [shop]..code = 1
0x016FC31B 30 34 0d 0a 53 68 6f 70 4e 61 6d 65 20 3d 20 31 04..ShopName = 10x016F721F 5b 73 68 6f 70 5d 0d 0a 63 6f 64 65 20 3d 20 31 [shop]..code = 1
0x016F722F 0d 0a 53 68 6f 70 4e 61 6d 65 20 3d 20 31 37 30 ..ShopName = 170我想取出0xf位置,
判断它是一位数1还是三位数104,
但是取了好几次都不对。
我是从1个TXT文件中读取的值,开始读取的是104,三位的。但是读到后来就变成1位的了,
因为它的值读取错误影响到我后面取的值,怎么办呢。[shop]
code = 1[shop]
code = 101
0x016FC31B 30 34 0d 0a 53 68 6f 70 4e 61 6d 65 20 3d 20 31 04..ShopName = 10x016F721F 5b 73 68 6f 70 5d 0d 0a 63 6f 64 65 20 3d 20 31 [shop]..code = 1
0x016F722F 0d 0a 53 68 6f 70 4e 61 6d 65 20 3d 20 31 37 30 ..ShopName = 170我想取出0xf位置,
判断它是一位数1还是三位数104,
但是取了好几次都不对。
我是从1个TXT文件中读取的值,开始读取的是104,三位的。但是读到后来就变成1位的了,
因为它的值读取错误影响到我后面取的值,怎么办呢。[shop]
code = 1[shop]
code = 101
ULONGLONG nLen = splFile.GetLength();
char *buff = new char[nLen+1];
splFile.Read(buff,nLen);
splFile.Close();
DWORD itemNo,helpItemNo;
int stLen = 0;
BYTE *newBuffer;
char seps[] = "[";
char *token = _tcstok(buff,seps);
char itemName[0x30] = {0};
char itemhelpNo[0x10] = {0};
token = _tcstok(NULL, seps);
token = _tcstok(NULL, seps);
while(token != NULL)
{
token = ((char*)token-1);
*(PBYTE)(token) = '[';
stLen = strlen(token);
int index = 0;
memset(itemName,NULL,sizeof(itemName));
while(*(WORD*)(token+0x1d+index) != 0x0A0d) //这个固定的1D会出问题
{
itemName[index] = *(char*)(token+0x1d+index);
++index;
}下面是我需要读取的TXT文本文件
[shop]
code = 60
ShopName = 17138
ShopCost = 1
shop_bg = BG_lab.jpg
boss_shp = 101
boss_head = 105
boss_name = 17139
boss_msg = 17140[shop]
code = 101
ShopName = 17141
ShopCost = 100
shop_bg = BG_et.jpg
boss_shp = 101
boss_head = 104
boss_name = 17142
boss_msg = 17143如果CODE得值按照while(*(WORD*)(token+0x1d+index) != 0x0A0d)中固定的0x1d来取的话会出错的,
所以我想判断一下,如果是不超过三位就取1D的长度,如果是三位的话就去0x1F的长度