Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [c++] файлы и стуктуры 
:(
    Опции темы
Jater
Дата 21.12.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 1.11.2008

Репутация: 1
Всего: 1



Код
void IzTextVBinsFam(char *filename)//создание бинарного из текстового 1
{
    
    struct dannye a;
    char *stroka=new char[300];
    char t[50]="Иванова";
    char y[50]="Козлова";
    int j;
    char *ptr;
    FILE* in;
    FILE* out;
    if(!(in=fopen(filename,"rt")))          //открытие файла
    {
        printf("Open file failed\n");
        return;
    }
    if(!(out=fopen("binSFIOiNZachetki.bin","w+b")))
    {
        printf("Cannot create file\n");
        return;
    }
    fgets(stroka,300,in);              
    while(!(feof(in)))
    {
       ptr=strtok(stroka," ");
       j=0;
       while(*(ptr+j)!='\0')
       {
           a.fio.f[j]=*(ptr+j);                  //a.fio.f -фамилия студента
           j++;
       }
       if(a.fio.f[50]==t[50])
       {
           cout<<"Иванова вышла замуж и сменила фамилию: ";
           a.fio.f[50]=y[50];
       }
       a.fio.f[j]='\0';
       ptr=strtok(NULL," ");
       j=0;
       while(*(ptr+j)!='\0')
       {
           a.fio.i[j]=*(ptr+j);         //a.fio.i -имя студента
           j++;
       }
       a.fio.i[j]='\0';
       ptr=strtok(NULL," ");
       j=0;
       while(*(ptr+j)!='\0')
       {
           a.fio.o[j]=*(ptr+j);             //a.fio.о -отчество студента
           j++;
       }
       a.fio.o[j]='\0';
       ptr=strtok(NULL," ");
       a.Nzach=atol(ptr);                      //a.Nzach -номер зачетки

       fwrite(&a,sizeof(a),1,out);
       fgets(stroka,300,in);
    }
    rewind(out);
    fread(&a,sizeof(a),1,out);
    while(!feof(out))
    {
        
        printf("%-15s %-15s %-15s %10d\n",a.fio.f,a.fio.i,a.fio.o,a.Nzach);
        fread(&a,sizeof(a),1,out);
    }
    fclose(in);
    fclose(out);
};


кратко о том что делает функция:
есть текстовый файл с информацией о студентах 1.txt:
Иванин Владимир Георгиевич 456345
Петров Василий Николаевич 456348
Иванова Зинаида Петровна 456340
Петрова Наталья Александровна 456349

функЦия читает этот файл и делает из него бинарныЙ!!!!!
ПОМОГИТЕ ПОЖАЛУЙСТА СДЕЛАТЬ ТАК ,ЧТО БЫ ПРИ ЧТЕНИИ ФАЙЛА ФАМИЛИЯ ИВАНОВА  ЗАМЕНИЛАСЬ НА ФАМИЛИЮ КОЗЛОВА(т.е. Иванова сменила фамилию)


PM MAIL   Вверх
NewDima
Дата 21.12.2008, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



используй
Код

strcmp

Цитата

Compares one string to another.
strcmp performs an unsigned comparison of s1 to s2, starting with the first character in each string and continuing with subsequent characters until the corresponding characters differ or until the end of the strings is reached.

И
Код

StrCopy

Цитата

Use StrCopy to copy a null-terminated string. StrCopy does not perform any length checking. The destination buffer must have room for at least StrLen(Source)+1 characters.

PM ICQ   Вверх
JackYF
Дата 21.12.2008, 22:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(NewDima @  21.12.2008,  19:00 Найти цитируемый пост)
StrCopy

Нет такой функции. Есть функция strcpy.

Это сообщение отредактировал(а) JackYF - 21.12.2008, 22:20


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
KasMP
Дата 21.12.2008, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 586
Регистрация: 8.8.2006

Репутация: нет
Всего: 30



Цитата(JackYF @  21.12.2008,  22:19 Найти цитируемый пост)
Нет такой функции. Есть функция strcpy.

Неправда smile .
Strcopy тоже когда-то была, но со временем выяснилось, что она какая-то кривая. Но это "со временем" было довольно длительным и поэтому strcopy успели встроить во многие компиляторы и т.п..
И чтобы не было разных несуразных расхождений, новую правильную функцию назвали strcpy.

Вот smile smile .
PM MAIL   Вверх
bsa
Дата 22.12.2008, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(KasMP @ 21.12.2008,  22:29)
Strcopy тоже когда-то была, но со временем выяснилось, что она какая-то кривая.

Странно. Но вот гугль нашел ее упоминание только в контексте всяких бейсиков и паскалей с дельфями.
мой тебе совет - посмотри названия всех фукций, которые объявлены в string.h, ты найдешь одну очень интересную закономерность - почти все из них имеют название из 6 символов (исключение - memmove, strcoll, strerror и расширенные версии базовых функций).
PM   Вверх
Dmi3ev
Дата 22.12.2008, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



KasMP,
Цитата

Цитата(JackYF @  21.12.2008,  22:19 Найти цитируемый пост)
Нет такой функции. Есть функция strcpy.

Неправда smile .


 А точно не путаете с Builder, там есть StrCopy... а вот про такую strcopy тоже не слышал...



--------------------

PM MAIL   Вверх
NewDima
Дата 22.12.2008, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



Код

extern PACKAGE char * __fastcall StrCopy(char * Dest, const char * Source);

Description

Use StrCopy to copy a null-terminated string. StrCopy does not perform any length checking. The destination buffer must have room for at least StrLen(Source)+1 characters.

For length checking, use the StrLCopy function.


Добавлено через 1 минуту и 56 секунд
да, стоит уточнить, bcb6

Добавлено через 3 минуты и 36 секунд
да, стоит уточнить, bcb6
PM ICQ   Вверх
NewDima
Дата 22.12.2008, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: нет
Всего: 12



да, наотправлял smile 

Это сообщение отредактировал(а) NewDima - 22.12.2008, 08:55
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1448 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.