Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чтение из файла

289
25 апреля 2006 года
Jeyson
207 / / 20.04.2000
Доброго времени суток. Из текстового файла не могу прочитать текст. Числа читаются и преобразуются нормально, но с текстом проблема. Пробовал читать посимвольно, но в программе в дальнейшем текст не распознается. Запись в файл и чтение из файла прилагаю ниже.

void CTrassa3dDoc::Serialize(CArchive& ar)
{
char csDate[42];
char NewString[2];
if (ar.IsStoring())// пишем
{
sprintf(NewString,"%s","\n");
ar.Write(NewString,2);
for(int i=0;i<countUzel;i++)
{
sprintf(csDate,"%10s%10.2f%10.3f%10.3f",masUzel.Name,masUzel.otm,
masUzel.dX,masUzel.dY);
ar.Write(csDate,40);
ar.Write(NewString,2);
}

}
else // читаем
{
int i=0;
countUzel=0;
while(ar.ReadString(csDate,42))
{
csDate[41]=0;
masUzel.dY=atof(&csDate[31]);
csDate[31]=0;
masUzel.dX=atof(&csDate[21]);
csDate[21]=0;
masUzel.otm=atof(&csDate[11]);
csDate[11]=0;
strcpy(masUzel.Name,CString(&csDate[0])); // ТУТ ПРОБЛЕМА!!!


masUzel.diamKol=0.1;
masUzel.TIP=6;
masUzel.col[0]=0;
masUzel.col[1]=0.5;
masUzel.col[2]=0.5;
masUzel.sel=false;
countUzel++;
i++;
}
}
Спасибо.
395
25 апреля 2006 года
RelB
367 / / 09.11.2002
Цитата:
Originally posted by Jeyson
strcpy(masUzel.Name,CString(&csDate[0])); // ТУТ ПРОБЛЕМА!!!
Спасибо.


Так в CString у тебя лужит не char, а TCHAR...
Попробуй так,

 
Код:
strcpy(masUzel.Name,csDate);

И вообще какой тип у masUzel.Name?
3
25 апреля 2006 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by Jeyson
Доброго времени суток. Из текстового файла не могу прочитать текст. Числа читаются и преобразуются нормально, но с текстом проблема. Пробовал читать посимвольно, но в программе в дальнейшем текст не распознается. Запись в файл и чтение из файла прилагаю ниже.

void CTrassa3dDoc::Serialize(CArchive& ar)
{
char csDate[42];
char NewString[2];
if (ar.IsStoring())// пишем
{
sprintf(NewString,"%s","\n");
ar.Write(NewString,2);
for(int i=0;i<countUzel;i++)
{
sprintf(csDate,"%10s%10.2f%10.3f%10.3f",masUzel.Name,masUzel.otm,
masUzel.dX,masUzel.dY);
ar.Write(csDate,40);
ar.Write(NewString,2);
}

}
else // читаем
{
int i=0;
countUzel=0;
while(ar.ReadString(csDate,42))
{
csDate[41]=0;
masUzel.dY=atof(&csDate[31]);
csDate[31]=0;
masUzel.dX=atof(&csDate[21]);
csDate[21]=0;
masUzel.otm=atof(&csDate[11]);
csDate[11]=0;
strcpy(masUzel.Name,CString(&csDate[0])); // ТУТ ПРОБЛЕМА!!!


masUzel.diamKol=0.1;
masUzel.TIP=6;
masUzel.col[0]=0;
masUzel.col[1]=0.5;
masUzel.col[2]=0.5;
masUzel.sel=false;
countUzel++;
i++;
}
}
Спасибо.


Попробуй использовать потоки (fstream) и будешь удивлен на сколько упроститься код.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог