Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
zeraid
Зарегистрирован: 24.03.2008 Сообщения: 2
|
Добавлено: Пн Мар 24 2008 19:21 Заголовок сообщения: В StringGrid выводит иероглифы. Помогите пжлст! |
|
|
ВОт кусок кода. тут 2 процедуры запись и чтение из фала. Сосно сначала читаю из грида и записываю в файл и одновременно заполняю список есессно. Потом читаю из файла и вывожу в другой грид. - выводит иероглифы.
Код: |
//запись
void ZAPIS()
{
FILE *kirp;
int i;
int t,k,n;
TList *kir;
kir = new TList;
stroka *p = new stroka;
if ((kirp = fopen("kirpichi.bdk", "rb+")) != NULL)
{
for ( i=1;i<(Form3->StringGrid1->RowCount);i++)
{
strcpy(p->name, Form3->StringGrid1->Cells[1][i].c_str());
strcpy(p->type, Form3->StringGrid1->Cells[2][i].c_str());
p->ves = StrToInt(Form3->StringGrid1 -> Cells[3][i]);
p->cost = StrToInt(Form3->StringGrid1 -> Cells[4][i]);
fwrite(kir, sizeof(kir), 1, kirp);
kir->Add(p);
}
}
fclose(kirp);
}
//чтение
void READ()
{
FILE *kirp;
int t,k,r,n;
TList *kir;
kir = new TList;
stroka *p = new stroka;
//fseek(kirp, SEEK_SET, 0);
//fread(&kirpic, sizeof(kirpic), 1, kirp);
int x=0;
for (k=1;k<(Form3->StringGrid1->RowCount);k++)
{
Form1->StringGrid1->RowCount++;
if (kirpic.ves<2.5, kirpic.cost<1.2)
{
fread(kir, sizeof(kir), 1, kirp);
Form1->StringGrid1 -> Cells[1][k]= p->name;
Form1->StringGrid1 -> Cells[2][k]= p->type;
Form1->StringGrid1 -> Cells[3][k]=IntToStr(p->ves);
Form1->StringGrid1 -> Cells[4][k]=IntToStr(p->cost);
x++;
}
else
{
k--;
x--;
}
}
fclose(kirp);
//Form1->Edit3->Text = 3;
} |
|
|
Вернуться к началу |
|
|
zeraid
Зарегистрирован: 24.03.2008 Сообщения: 2
|
Добавлено: Пн Мар 24 2008 19:35 Заголовок сообщения: |
|
|
вообще я думаю вот так надо кодик чуть подправить. Выводит уже другие иероглифы.... Здесь просто массив структур сделал. А то иначе он бы ток последн результат выводил....
Код: |
//запись
void ZAPIS()
{
FILE *kirp;
int i;
int t,k,n;
TList *kir;
kir = new TList;
stroka *p = new stroka [n];
if ((kirp = fopen("kirpichi.bdk", "rb+")) != NULL)
{
for ( i=1;i<(Form3->StringGrid1->RowCount);i++)
{
strcpy(p[i].name, Form3->StringGrid1->Cells[1][i].c_str());
strcpy(p[i].type, Form3->StringGrid1->Cells[2][i].c_str());
p[i].ves = StrToInt(Form3->StringGrid1 -> Cells[3][i]);
p[i].cost = StrToInt(Form3->StringGrid1 -> Cells[4][i]);
fwrite(&kirpic, sizeof(kirpic), 1, kirp);
//kir->Add(p);
}
}
fclose(kirp);
}
//чтение
void READ()
{
FILE *kirp;
int t,k,r,n;
TList *kir;
kir = new TList;
stroka *p = new stroka;
//fseek(kirp, SEEK_SET, 0);
fread(&kirpic, sizeof(kirpic), 1, kirp);
int x=0;
for (k=1;k<(Form3->StringGrid1->RowCount);k++)
{
Form1->StringGrid1->RowCount++;
if (kirpic.ves<2.5, kirpic.cost<1.2)
{
//fread(kirpic, sizeof(kirpic), 1, kirp);
Form1->StringGrid1 -> Cells[1][k]= p[k].name;
Form1->StringGrid1 -> Cells[2][k]= p[k].type;
Form1->StringGrid1 -> Cells[3][k]=IntToStr(p[k].ves);
Form1->StringGrid1 -> Cells[4][k]=IntToStr(p[k].cost);
x++;
}
else
{
k--;
x--;
}
}
fclose(kirp);
//Form1->Edit3->Text = 3;
} |
|
|
Вернуться к началу |
|
|
|