Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
СпиК
Сообщений: n/a
#1

Дописать фаил - C++

06.09.2007, 17:39. Просмотров 1298. Ответов 3
Метки нет (Все метки)

Помогите новичку.
Есть фаил:
FK|2005.08|СЭД|1.21.X.13||
FROM|5600с**а21.03.2007|1|
TO|||14650||
RR||188||9500||А.П. Щербина|Н.В. Котов|Начальник отделения|Гончарова С.В.|0|
RRRC|188/14650/011|20.03.2007|20.03.2007|0|0||1|14650||5600х..во218278105000|215290000|70982585000|15290000|224539855000|72823405000|||0|10484|
RRRCST|188|0302|2010000|222|222|50000000|50000000|0|0||1|
RRRCST|188|0302|2020000|253|226|3877355000|150000000|0|0||2|
RRRCST|188|0302|2020000|253|290|111400000|14000000|0|0||3|
RRRCST|188|0302|2150000|240|262|1290000|1290000|0|0||4|
RRRCST|188|0302с**а218278105000|215290000|70982585000|15290000||5|
Надо вставить в начало конец строки, которая начинается на RRRC и в конец файла тест.
Вот исходник
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main (int argc, char *argv[])
{
   FILE *in, *out;
   char buf[1024];
   char buf2[1024];
   char *ptr;
   int cnt=0;
   if (argc>2) {
   if ((in = fopen(argv[1], "r"))
       == NULL)
   {
      fprintf(stderr, "       Cannot open input file.\n");
      exit(1);
   }
   if ((out = fopen(argv[2], "w"))
       == NULL)
   {
      fprintf(stderr, "       _Cannot open input file.\n");
       exit(1);
   }
   while (!feof(in)){
   fgets(buf,1024,in);
   if (cnt==0) {
   strcpy(buf2,buf);
   ptr=&buf2[11];
   strcpy(buf,"FK|2006.01|");
   strcat(buf,ptr);
 
   }
   cnt++;
   
   if (strncmp("RRRC|",buf,5)==0)
   {
    buf[strlen(buf)-1]='|';
    buf[strlen(buf)]='|';
    fprintf(out,"%s\n",buf) ;
    
   }
   else
   fputs(buf,out);
   }
    fputs("REORG||||||",out);
    fclose(out);
    fclose(in);  
   }
}
И почему-то получается вот так:
Код
FK|2006.01|СЭД|1.21.X.13||
FROM|5600с**а21.03.2007|1|
TO|||14650||
RR||188||9500||А.П. Щербина|Н.В. Котов|Начальник отделения|Гончарова С.В.|0|
RRRC|188/14650/011|20.03.2007|20.03.2007|0|0||1|14650||5600х..во218278105000|215290000|70982585000|15290000|224539855000|72823405000|||0|10484|||МММММММММММММММММММММММММММММММММММММММММ°JB
RRRCST|188|0302|2010000|222|222|50000000|50000000|0|0||1|
RRRCST|188|0302|2020000|253|226|3877355000|150000000|0|0||2|
RRRCST|188|0302|2020000|253|290|111400000|14000000|0|0||3|
RRRCST|188|0302|2150000|240|262|1290000|1290000|0|0||4|
RRRCST|188|0302с**а218278105000|215290000|70982585000|15290000||5|
RRRCST|188|0302с**а218278105000|215290000|70982585000|15290000||5|
REORG||||||
Помогите плиз!!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2007, 17:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дописать фаил (C++):

Запись в фаил - C++
Подскажите как осуществить запись в фаил определенным шрифтом, например шрифтом Arial или Calibri или Times New Roman. Заранее спасибо.

не открывается фаил - C++
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;malloc.h&gt; #include&lt;string.h&gt; #include&lt;iostream&gt; using namespace std; struct...

фаил в функцию - C++
Пишу прогу нужно передать фаил в функцию для обработфи но возникла такая проблема: вот функция : void add(ifstream &amp;fin,LIST *head) {...

Запись в фаил - C++
Здравствуйте, возник вопрос,возможно он покажется немного странным , но всё же хД Суть такая: нужно было придумать некий простенький...

не находит фаил - C++
фаил с реализацией функций-членов класса, не может найдти фаил с опсанием класса. вот:

Сохранение в фаил - C++
Ребят помогите. В общем есть таблица сделанная структурой, и вот ее надо записать в фаил и прочитать оттуда. Сколько лазил по интернету не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
06.09.2007, 18:18 #2
Цитата Сообщение от СпиК
Надо вставить в начало конец строки, которая начинается на RRRC и в конец файла тест.
Не понятно. Нарисуй, как должен файл выглядеть в конечном итоге...
0
СпиК
Сообщений: n/a
06.09.2007, 18:54 #3
Без МММММММММММММММММММ, т.е.так
FK|2006.01|СЭД|1.21.X.13||
FROM|5600с**а21.03.2007|1|
TO|||14650||
RR||188||9500||А.П. Щербина|Н.В. Котов|Начальник отделения|Гончарова С.В.|0|
RRRC|188/14650/011|20.03.2007|20.03.2007|0|0||1|14650||5600х..во218278105000|215290000|70982585000|15290000|224539855000|72823405000|||0|10484|||
RRRCST|188|0302|2010000|222|222|50000000|50000000|0|0||1|
RRRCST|188|0302|2020000|253|226|3877355000|150000000|0|0||2|
RRRCST|188|0302|2020000|253|290|111400000|14000000|0|0||3|
RRRCST|188|0302|2150000|240|262|1290000|1290000|0|0||4|
RRRCST|188|0302с**а218278105000|215290000|70982585000|15290000||5|
RRRCST|188|0302с**а218278105000|215290000|70982585000|15290000||5|
REORG||||||
igor_nf
118 / 12 / 1
Регистрация: 21.08.2007
Сообщений: 222
06.09.2007, 22:58 #4
Честно сказать, оформление кода ужасное, да и нет желания глубоко копать, потому что задача мне так и не ясна. Я, обычно, стараюсь свести пользование библиотечными функциями до минимума. Почему у вас там лишние буквы печатаются, это вы уж сами как-нибудь разберитесь. То, что вам нужно, исходя из требуемого вида файла, решает следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include <stdlib.h>
#include <stdio.h>
 
#define BUFSIZE 1024
 
void get_file_data( char* );
void change_date( char* );
void cat_to_end( char* );
 
char buf[BUFSIZE];
FILE *in, *out;
 
int main(int argc, char *argv[])    {
 
    char *ptr;
 
    if( argc != 3) {
        fprintf( stderr, "\tWrong args...Exiting...\n");
        exit( EXIT_FAILURE );
    }
 
    if ( (in = fopen( argv[1], "r" )) == NULL ) {
        fprintf( stderr, "\tCannot open input file...Exiting...\n" );
        exit( EXIT_FAILURE );
    }
 
    if ( (out = fopen( argv[2], "w" )) == NULL ) {
        fprintf(stderr, "\tCannot open input file....Exiting...\n");
        exit( EXIT_FAILURE );
    }
 
    get_file_data( buf );
    change_date( buf );
    cat_to_end( buf );
    
    int i;
 
    for( i = 0; buf[i] != EOF && i < sizeof( buf ) / sizeof( buf[0] ); ++i )
        putc( buf[i], out );
    
    fclose( in );
    fclose( out );
 
return 0;
}
 
void get_file_data( char *ptr ) {
 
    int i;
    char ch;
 
    for( i = 0; (ch = getc( in )) != EOF && i < BUFSIZE; ++i )
        *( ptr + i ) = ch;
 
    *( ptr + i ) = ch;
}
 
void change_date( char* ptr ) {
 
    int i;
 
    char *Data = "2006.01";
 
    for( i = 3; *Data != '\0'; ++i, ++Data )
        *(ptr + i) = *Data;
 
}
 
void cat_to_end( char *ptr ) {
 
    char *Eptr = ptr;
    char *Data = "REORG||||||";
    
    while( *Eptr != EOF )
            ++Eptr;
 
    while( *Data != '\0' )
        *Eptr++ = *Data++;
 
    *Eptr = EOF;
 
}
Но он делает только то, что вам нужно и ничего более.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.09.2007, 22:58
Привет! Вот еще темы с ответами:

текстовый фаил - C++
Помогите сделать задачу на С++ я не понимаю этот я зык но надо срочно. В одномерном массиве посчитать сумму элементов,находящихся в...

Двоичный фаил - C++
люди помогите пожалуйста ни как не могу понять что за двоичный фаил сделал прогу с обычным фаилом а препад говорит что нужен двоичный... ни...

Вшить 1 фаил в другой - C++
есть античит на c++ и есть фаил запуска игры. надо &quot;Вшить&quot; запуск игры в в античит или наоборот. те я хочу чтобы античит запускал из...

Удалить и переименовать фаил - C++
Уважаемые форумчане,подскажите как можно удалить и переименовать фаил?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.09.2007, 22:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru