C++ (Qt)Выделить код
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
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
class group
{
char** family;
int** ball;
int max_i;
public:
group();
void set_family(char* s);
void set_balls(int* s, int i);
void get_list();
};
group::group()
{
group::max_i = 0;
group::family = new char* [255];
group::ball = new int* [255];
}
void group::set_family(char* s)
{
group::family[group::max_i] = new char[255];
group::family[group::max_i] = s;
}
void group::set_balls(int* s, int i)
{
group::ball[group::max_i] = new int[i + 1];
group::ball[group::max_i][0] = i;
for (int j = 1; j < i; j++)
group::ball[group::max_i][j] = s[j - 1];
group::max_i++;
}
void group::get_list()
{
int tmp = 0;
double buf = 0;
for (int i = 0; i < group::max_i; i++)
{
cout << group::family[i] << endl;
tmp = group::ball[i][0];
for (int j = 1; j < tmp; j++)
buf += group::ball[i][j];
buf /= tmp;
cout << buf << endl;
cout << "" << endl;
buf = 0;
tmp = 0;
}
}
int main()
{
cout << "Тут";
}
Сделать это можно так:
while not eof(fr) and (kol=0) do
begin
read(fr, Marshrut);
if (Marshrut.NK.N <> '11')
then write(fr2,Marshrut)
else begin inc(kol); y:=Marshrut; end;
end;
if not eof(fr) then
begin
read(fr, Marshrut);
write(fr2,Marshrut);
end;
if (kol=1) then write(fr2,y);
Дальше нужно просто переписать оставшиеся записи из первого файла во второй. Затем оба файла закрыть, первый файл удалить, а второй переименовать (т.е. назвать его так, как назывался первый файл).
Попробуйте ещё вот такой вариант:
(здесь k1 и k2 - целые, а y - типа )
if (Marshrut.NK.N = '11') then
begin
writeln('... ');
inc(kol);
y:=Marshrut;
k1:=FilePos(fr)-1;
k2:=FilePos(fr);
if not eof(fr) then
begin
read(fr, Marshrut);
seek (fr, k1);
write(fr, Marshrut);
seek (fr, k2);
write (fr, y);
end;
end;