AnsiString и вывод в файл
Проблема:
Необходимо DBF базу перегнать в текстовый файл с табами между полями.
Код следующий:
num=TableIn->RecordCount;
fhandle=open("sss.txt", O_CREAT | O_WRONLY | O_BINARY);
TableIn->First();
for(i=0; i<num; ++i)
{
strout=TableIn->FieldByName("Name")->AsString;
str=strout.c_str();
lenbuf=strlen(str);
for(j=0; j<lenbuf; ++j) buffer[j]=str[j];
write(fhandle, buffer, lenbuf);
write(fhandle, enter, 2);
TableIn->Next();
}
close(fhandle);
Дает на выходе:
В одних Нормально,
В других заместо 9 символа: символ стрелки вверх с кодом 0x18.
Буду очень благодарен за помощь.
Прим: пробовал и другие более простые коды (strcpy или memcpy), но на выходе тоже самое.
Цитата:
Originally posted by PaulJhB
Использую Builder 5
Проблема:
Необходимо DBF базу перегнать в текстовый файл с табами между полями.
Код следующий:
num=TableIn->RecordCount;
fhandle=open("sss.txt", O_CREAT | O_WRONLY | O_BINARY);
TableIn->First();
for(i=0; i<num; ++i)
{
strout=TableIn->FieldByName("Name")->AsString;
str=strout.c_str();
lenbuf=strlen(str);
for(j=0; j<lenbuf; ++j) buffer[j]=str[j];
write(fhandle, buffer, lenbuf);
write(fhandle, enter, 2);
TableIn->Next();
}
close(fhandle);
Дает на выходе:
В одних Нормально,
В других заместо 9 символа: символ стрелки вверх с кодом 0x18.
Буду очень благодарен за помощь.
Прим: пробовал и другие более простые коды (strcpy или memcpy), но на выходе тоже самое.
Использую Builder 5
Проблема:
Необходимо DBF базу перегнать в текстовый файл с табами между полями.
Код следующий:
num=TableIn->RecordCount;
fhandle=open("sss.txt", O_CREAT | O_WRONLY | O_BINARY);
TableIn->First();
for(i=0; i<num; ++i)
{
strout=TableIn->FieldByName("Name")->AsString;
str=strout.c_str();
lenbuf=strlen(str);
for(j=0; j<lenbuf; ++j) buffer[j]=str[j];
write(fhandle, buffer, lenbuf);
write(fhandle, enter, 2);
TableIn->Next();
}
close(fhandle);
Дает на выходе:
В одних Нормально,
В других заместо 9 символа: символ стрелки вверх с кодом 0x18.
Буду очень благодарен за помощь.
Прим: пробовал и другие более простые коды (strcpy или memcpy), но на выходе тоже самое.
Как я понял тебе надо данные из таблицы загнать в текстовый файл.
Я думаю, удобнее всего юзать потоки( fstream.h) Создаёшь выходной поток
ofstream out(filename);
Потом стандартной операцией заносишь туда данные:
out << 1 << 2 << 3 << endl;