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

Ваш аккаунт

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

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

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

работа с файлом

3.9K
06 апреля 2005 года
generalm
28 / / 20.10.2004
есть файл c содержимым

3


код:

ifstream fin("файл.dat");
fin.seekg(0,ios::beg);
dat=fin.get();

Выводми dat в Label->Caption
а там 51 ... ???(остальные значения здесь не представленные вообще не выводятся)


Такой может быть?

в книжке описано что fin.get() - если без параметров вытягивает из кода int значения ,это правда у меня просто весь файл состоит из циферок, и нужно их подряд собирать и складывать в объект...

что в моих 3-х строчках неверно?... выложите кто может примерчик пожалуйста...
2.0K
06 апреля 2005 года
WidowMaker
212 / / 05.04.2005
Напиши подробней(весь кусок кода). Что такое dat и как именно ты его туда заносишь. И приведи файл для загрузки, тогда будет что ответить...
585
06 апреля 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by generalm
есть файл c содержимым

3


код:

ifstream fin("файл.dat");
fin.seekg(0,ios::beg);
dat=fin.get();

Выводми dat в Label->Caption
а там 51 ... ???(остальные значения здесь не представленные вообще не выводятся)


Такой может быть?

в книжке описано что fin.get() - если без параметров вытягивает из кода int значения ,это правда у меня просто весь файл состоит из циферок, и нужно их подряд собирать и складывать в объект...

что в моих 3-х строчках неверно?... выложите кто может примерчик пожалуйста...



Вы записали файл в текстовом режиме и при чтении вы получили 51 - это ASCII код цифры 3 т.е. dat = '3' <=> dat = 51. Если у вас есть hex-редактор, то открыв файл в нем вы увидите что там записано 51, а скорее всего 0x33 в шестнадцатиричном виде, но не 3.
ИМХО, не самый лучший метод работы с бинарными файлами.

585
06 апреля 2005 года
honeybeer
297 / / 06.09.2004
если хотите работать с сырыми данными пользуйтесь write и read
2.0K
06 апреля 2005 года
WidowMaker
212 / / 05.04.2005
Цитата:
Originally posted by honeybeer
если хотите работать с сырыми данными пользуйтесь write и read


А вообще забе на эти стандарты и юзай TStrings -
толку больше и надежность выше...

585
06 апреля 2005 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by WidowMaker
А вообще забе на эти стандарты и юзай TStrings -
толку больше и надежность выше...



От TStrings в бинарниках мало толку, тогда уж
TFileStream. И кстати, для работы с текстовыми файлами, ifstream и ofstream - отличная весчь :D

2.0K
06 апреля 2005 года
WidowMaker
212 / / 05.04.2005
Цитата:
Originally posted by honeybeer
От TStrings в бинарниках мало толку, тогда уж
TFileStream. И кстати, для работы с текстовыми файлами, ifstream и ofstream - отличная весчь :D


Кто ж спорит.
Но файл используется для AnsiString(Caption) а тут это... дурной тон...(или как там пишет MSDN)

3.9K
06 апреля 2005 года
generalm
28 / / 20.10.2004
Цитата:
Originally posted by WidowMaker
Кто ж спорит.
Но файл используется для AnsiString(Caption) а тут это... дурной тон...(или как там пишет MSDN)

]

подробнее

файл
3
1,120,200,0
2,130,200,0
3,140,200,0

----код----------
int dat;
ifstream fin("файл.dat");
fin.seekg(0,ios::beg);
dat=fin.get();
gpr[1]->instantdlinna(dat);

for (int i=1;i<4;i++)
{
dat=fin.get();
dat1=fin.get();
dat2=fin.get();
dat3=fin.get();
gpr[1]->instantgp(dat,dat1,dat2,dat3);
}
for (int i=1;i<4;i++)
{
StringGrid5->Cells[0][StringGrid5->RowCount-1]=gpr[1]->dlinna;
StringGrid5->Cells[1][StringGrid5->RowCount-1]=gpr[1]->pp;
StringGrid5->Cells[2][StringGrid5->RowCount-1]=gpr[1]->x;
StringGrid5->Cells[3][StringGrid5->RowCount-1]=gpr[1]->y;
StringGrid5->Cells[4][StringGrid5->RowCount-1]=gpr[1]->property;
StringGrid5->RowCount++;
}


------- ----------
grp - это объект класса, точнее его указатель, но это не важно....


Если мои идем это дурной тон....

подскажите

файл создается вручную.....кучей int значениями
через запятую(ну или пробел не важно)

как считать эти int в класс, ну или как их просто считать, с классом то все понятно...

259
06 апреля 2005 года
AlexandrVSmirno
1.4K / / 03.12.2004
Цитата:
Originally posted by generalm
]

подробнее

файл
3
1,120,200,0
2,130,200,0
3,140,200,0

----код----------
int dat;
ifstream fin("файл.dat");
fin.seekg(0,ios::beg);
dat=fin.get();
gpr[1]->instantdlinna(dat);

for (int i=1;i<4;i++)
{
dat=fin.get();
dat1=fin.get();
dat2=fin.get();
dat3=fin.get();
gpr[1]->instantgp(dat,dat1,dat2,dat3);
}
for (int i=1;i<4;i++)
{
StringGrid5->Cells[0][StringGrid5->RowCount-1]=gpr[1]->dlinna;
StringGrid5->Cells[1][StringGrid5->RowCount-1]=gpr[1]->pp;
StringGrid5->Cells[2][StringGrid5->RowCount-1]=gpr[1]->x;
StringGrid5->Cells[3][StringGrid5->RowCount-1]=gpr[1]->y;
StringGrid5->Cells[4][StringGrid5->RowCount-1]=gpr[1]->property;
StringGrid5->RowCount++;
}


------- ----------
grp - это объект класса, точнее его указатель, но это не важно....


Если мои идем это дурной тон....

подскажите

файл создается вручную.....кучей int значениями
через запятую(ну или пробел не важно)

как считать эти int в класс, ну или как их просто считать, с классом то все понятно...


А почему бы не сделать так:

Код:
int dat;
char delim;
ifstream fin("файл.dat");
fin.seekg(0,ios::beg);
fin >> dat;
gpr[1]->instantdlinna(dat);

for (int i=1;i<4;i++)
{
   fin >> dat >> delim;
   fin >> dat1 >>delim;;
   fin >> dat2 >> delim;
   fin >> dat3;
   gpr[1]->instantgp(dat,dat1,dat2,dat3);
}
for (int i=1;i<4;i++)
{
   StringGrid5->Cells[0][StringGrid5->RowCount-1]=gpr[1]->dlinna;
   StringGrid5->Cells[1][StringGrid5->RowCount-1]=gpr[1]->pp;
   StringGrid5->Cells[2][StringGrid5->RowCount-1]=gpr[1]->x;
   StringGrid5->Cells[3][StringGrid5->RowCount-1]=gpr[1]->y;
   StringGrid5->Cells[4][StringGrid5->RowCount-1]=gpr[1]->property;
   StringGrid5->RowCount++;
}
2.0K
06 апреля 2005 года
WidowMaker
212 / / 05.04.2005
Не хотел обидеть, правда.

А со StringGrid для записи и чтения надо работать через свойство Table->Cols или Table->Rows
они элементарно загружаются и пишутся в файлы
(SaveToFile).Есть даже спец. метод записи в StringGrid(щас некогда см. синтаксис- играю в клубе в СS:))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог