Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Дописать фаил / 12 сообщений из 12, страница 1 из 1
06.09.2007, 14:28
    #34781438
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Помогите новичку.
Есть фаил:
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 и в конец файла тест.
Вот исходник
Код: plaintext
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||||||

Помогите плиз!!!
...
Рейтинг: 0 / 0
06.09.2007, 17:22
    #34782275
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Ну кто-нибудь, я считаю ведь это не так уж и сложно.
Я уже все перепробовал, что знаю.
...
Рейтинг: 0 / 0
06.09.2007, 18:08
    #34782452
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
СпиКНу кто-нибудь, я считаю ведь это не так уж и сложно.
Я уже все перепробовал, что знаю.
Диагноз программа сделал ровно то что ты написал. Ты нипиши какой файл на выходе хотел иметь тогда помогу
...
Рейтинг: 0 / 0
06.09.2007, 18:53
    #34782580
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
blinded
Диагноз программа сделал ровно то что ты написал. Ты нипиши какой файл на выходе хотел иметь тогда помогу
Без МММММММММММММММММММ, т.е.так

автор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||||||
...
Рейтинг: 0 / 0
06.09.2007, 18:56
    #34782589
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Ну так батенька зачем же концевой ноль в буфере затер? Вот тебе мусору и насыпали, хорошо еще мало и печатными символами, а можно и access violation схватить
...
Рейтинг: 0 / 0
06.09.2007, 18:59
    #34782597
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Как его "растереть"?
...
Рейтинг: 0 / 0
06.09.2007, 19:09
    #34782615
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  if (strncmp("RRRC|",buf, 5 )== 0 )
   {
    buf[strlen(buf)- 1 ]='|';
    buf[strlen(buf)]='|';
    buf[strlen(buf) +  1 ]='\0';
    fprintf(out,"%s\n",buf) ;
   }
...
Рейтинг: 0 / 0
06.09.2007, 19:09
    #34782616
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Как поставить в буфер концевой ноль?
...
Рейтинг: 0 / 0
06.09.2007, 19:18
    #34782632
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Ну написал же
Код: plaintext
1.
buf[strlen(buf) +  1 ]='\0';
...
Рейтинг: 0 / 0
06.09.2007, 19:26
    #34782655
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Да я это увидел спасибо, просто чуть опоздал.
Теперь у меня привыполнении этого экзешника выдает "RR.exe - обнаружена ошибка. Приложение будет закрыто. ..."
...
Рейтинг: 0 / 0
06.09.2007, 19:31
    #34782671
blinded
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Старый хрен взялся учить
Код: plaintext
1.
2.
3.
4.
int i = strlen(buf);
buf[i- 1 ]='|';
buf[i]='|';
buf[i +  1 ]='\0'
...
Рейтинг: 0 / 0
07.09.2007, 07:50
    #34783097
СпиК
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Дописать фаил
Больое спасибо, все получилось.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Дописать фаил / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]