Есть файл, текст в котором в кодировке DOS. Если в поиске ввожу слово, имеющееся в файле, то программа ничего не находит. Если же это слово скопировать из файла, то все отлично работает. Кодировку текста меняю с помощью функции OemToChar. Текст состоит из 3 столбцов.

Вот эта функция
void __fastcall TForm1::Button5Click(TObject *Sender)
{
AnsiString filename=Edit1 -> Text;
FILE* f;
f=fopen(filename.c_str(),"r");
char string[129],*s;
int i=0,j=0,k=0,metka=0,num=1;
char *str1=" ",*str2=" ", name[150],*var1,*var2;
while (fgetc(f)!='|');
fseek(f,1,SEEK_CUR);
long int save=ftell(f);
char *text;
text=Edit2 -> Text.c_str();
i=0;
while (text[i]!='\0')
{
j=0;
while (((text[i]!=' ')) && (text[i]!='\0'))
{
if (num==1) str1[j]=text[i];
if (num==2) str2[j]=text[i];
i++;
j++;
}
i++;
num++;
}
for (i=strlen(str1);i!=0;i--) if (str1[i]==' ') str1[i]=0;
for (i=strlen(str2);i!=0;i--) if (str2[i]==' ') str2[i]=0;
while(!feof(f))
{
fseek(f,save,SEEK_SET);
for (i=0;i<83;i++)
{
s=fgets(string,129,f);
OemToChar(string,string);
for (j=0;j<86;j++) string[42+j]=0;
string[0]=' ';

j=1;
if (string[j]!=' ')
{
for (k=0;k<50;k++) name[k]=0;
while ((string[j]!=' ') && (j<40))
{
name[j-1]=string[j];
j++;
}
}
if ((strstr(string,str1)) && (strstr(string,str2)) )
{
for (j=0;j<strlen(name);j++) string[j+1]=name[j];
RichEdit1->Lines->Add(string);
}
}

fseek(f,save,SEEK_SET);
for (i=0;i<83;i++)
{
s=fgets(string,129,f);
OemToChar(string,string);
for (j=0;j<43;j++) string[j]=' ';
for (j=0;j<43;j++) string[42*2+j]=0;
for (j=0;j<43;j++)
{
string[j]=string[42+j];
string[42+j]=0;
}
j=1;
if (string[j]!=' ')
{
for (k=0;k<50;k++) name[k]=0;
while ((string[j]!=' ')&& (j<40))
{
name[j-1]=string[j];
j++;
}
}
if ((strstr(string,str1)) && (strstr(string,str2)) )
{
for (j=0;j<strlen(name);j++) string[j+1]=name[j];
RichEdit1->Lines->Add(string);
}
}

fseek(f,save,SEEK_SET);
for (i=0;i<83;i++)
{
s=fgets(string,129,f);
OemToChar(string,string);
for (j=0;j<86;j++) string[j-1]=' ';
for (j=0;j<43;j++)
{
string[j]=string[84+j];
string[84+j]=0;
}
string[42]=' ';
j=1;
if (string[j]!=' ')
{
for (k=0;k<50;k++) name[k]=0;
while ((string[j]!=' ') && (j<40))
{
name[j-1]=string[j];
j++;
}
}
if ((strstr(string,str1)) && (strstr(string,str2)) )
{
for (j=0;j<strlen(name);j++) string[j+1]=name[j];
if ((metka==0) && !(strchr(s,'|'))) RichEdit1->Lines->Add(string);
}
}

s=fgets(string,129,f);
save=ftell(f);
}
fclose(f);
for (i=0;i<strlen(str1);i++) str1[i]=' ';
for (i=0;i<strlen(str2);i++) str2[i]=' ';
}