Да там язык на с похож, с конкретными символами не работал, работал с переброской байтов
вот например
// Define local variables
const int DEFAULT_FILE_SIZE = 100000000;
quad filesize, size, pos, blocksize;
int filecount, len, i, j, digitpos, filenum, done;
char filename[256], filenameF[256], str[128];
uchar buf[ 1 ];
// Check that a file is open
if( FileCount() == 0 )
{
MessageBox( idOk, "SplitFile", "SplitFile can only be executed when a file is loaded." );
return -1;
}
// Get the filename of the target file
filename = GetFileName();
len = Strlen(filename)-1;
i = len-1;
while( filename!='.' ) i--;
filenameF = filename;
filenameF[i++] = ' ';
filenameF = 'B';
for( i++; i-4<len; i++ )
{
filenameF = filename[i-2];
}
//filenameF = GetFileName() + " F";
// Separate file into a number of smaller files
size = FileSize();
filenum = GetFileNum();
uchar buffer[ size ];
// Byte riffle
for( pos=0; pos<size; pos++ )
{
ReadBytes( buf, pos, 1 );
buffer[pos] = 0;
for( i=0; i<8; i++ )
{
buffer[pos] *= 2;
if( buf[0]%2!=0 ) buffer[pos]++;
buf[0] /= 2;
}
}
// Write to new file
FileNew();
WriteBytes( buffer, 0, size );
if( FileSave( filenameF ) < 0 )
{
MessageBox( idOk, "SplitFile", "An error occured writing file '%s' of size %Ld.", filenameF, pos );
return -1;
}
FileClose();
FileSelect( filenum );
// Make sure a big block of data is not still on the clipboard
SetSelection( 0, 1 );
CopyToClipboard();
SetSelection( 0, 0 );
MessageBox( idOk, "SplitFile", "Successfully split '%s' file.", filename );
собственно можешь взять байт и сравнить его с определенным значением и потом сделать новый файл и измененными значениями и так каждый байт поочереди
но еще проще можно и в билдере какомнить написать прогу - реально следует подучить немного программирование по работе с файлами - всеравно раз с ними работаешь то пригодится