Я хочу найти определенную строку «fileSize» в двоичном файле.
Цель поиска этой строки - получить 4 байта рядом со строкой, поскольку эти 4 байта содержат размер данных, которые я хочу получить.прочитай это.
Содержимое двоичного файла выглядит следующим образом:
![](https://i.stack.imgur.com/fTQYf.jpg)
Та же строка в другой позиции:
![](https://i.stack.imgur.com/Sxmgw.jpg)
Другая позиция:
![](https://i.stack.imgur.com/8mHpm.jpg)
Ниже приводится функция, которая записывает данные вfile:
void W_Data(char *readableFile, char *writableFile) {
ifstream RFile(readableFile, ios::binary);
ofstream WFile(writableFile, ios::binary | ios::app);
RFile.seekg(0, ios::end);
unsigned long size = (unsigned long)RFile.tellg();
RFile.seekg(0, ios::beg);
unsigned int bufferSize = 1024;
char *contentsBuffer = new char[bufferSize];
WFile.write("fileSize:", 9);
WFile.write((char*)&size, sizeof(unsigned long));
while (!RFile.eof()) {
RFile.read(contentsBuffer, bufferSize);
WFile.write(contentsBuffer, bufferSize);
}
RFile.close();
WFile.close();
delete contentsBuffer;
contentsBuffer = NULL;
}
Также функция, которая ищет строку:
void R_Data(char *readableFile) {
ifstream RFile(readableFile, ios::binary);
const unsigned int bufferSize = 9;
char fileSize[bufferSize];
while (RFile.read(fileSize, bufferSize)) {
if (strcmp(fileSize, "fileSize:") == 0) {
cout << "Exists" << endl;
}
}
RFile.close();
}
Как найти определенную строку в двоичном файле?