Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33

Отсортировать текстовый файл по значению XLINE с интервалом, заданным пользователем

12.11.2014, 16:10. Показов 870. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: есть текстовый файл вида:
INLINE : 233 XLINE : 202 668417,50000 565878,00000 995,87421
INLINE : 234 XLINE : 202 668442,50000 565878,00000 996,36517
INLINE : 235 XLINE : 203 668467,50000 565878,00000 997,71307
INLINE : 236 XLINE : 203 668492,50000 565878,00000 997,85120
INLINE : 237 XLINE : 204 668517,50000 565878,00000 996,78815
INLINE : 238 XLINE : 205 668542,50000 565878,00000 997,36981
INLINE : 239 XLINE : 206 668567,50000 565878,00000 999,11261
INLINE : 241 XLINE : 206 668617,50000 565878,00000 1001,53223


Нужно отсортировать его по значению XLINE с интервалом, заданным пользователем.\
Ну к примеру XLINE : 202
Интервал 2

Должен получится файл со строками
NLINE : 233 XLINE : 202 668417,50000 565878,00000 995,87421
INLINE : 234 XLINE : 202 668442,50000 565878,00000 996,36517
INLINE : 237 XLINE : 204 668517,50000 565878,00000 996,78815
INLINE : 239 XLINE : 206 668567,50000 565878,00000 999,11261
INLINE : 241 XLINE : 206 668617,50000 565878,00000 1001,53223


Я понимаю, что алгоритм не блещет, т.к. прогоняю файл я много раз, но и тут никак не могу добиться результата:
сбоит при работе и я уже 25 раз прогнала в режиме отладки и не пойму почему: у меня исходный файл читается первый раз для определения параметра xlainMax и еще пока будет соблюдаться условие (xline<=xlineMax).
Первый проход все ок, печатаем и пишем в файл строки с xlain, заданным пользователем, при повторном проходе при заполнении массива massiv_str[i] прога вместо значения пишет ноль и собственно этим все и заканчивается. ПОМОГИТЕ! Текст проги весь ниже.

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstddef>
#include<locale.h> 
#include <windows.h>
#include <string>
#include <cstring>
 
 
using namespace std;
void main()
{
   
    setlocale(LC_ALL,"Russian");//Русификация
//Объявляем переменные   
double xline,interval,xlineMax;
ifstream f;//Объявляем поток чтения из файла
ofstream f1;//Объявляем поток записи в файл
char str[100];//Строковая переменная (для пути к исходному файлу)
char str1[100];//Строковая переменная (для пути к готовому файлу)
double massiv_str[9]; // Массив, содержащий код и значения очередной строки в сортируемом файле  
string s;// слово в строке сортируемого файла
 
 
 
 
cout<<"\n Введите путь и имя файла для сортировки в виде D:\\имя папки\\имя файла.txt: \n";
SetConsoleCP(1251);
cin>>str;
SetConsoleCP(866);
cout<<"\n Введите начальное значение XLINE:";
cin>>xline;
cout<<"\n Введите интервал для отбора:";
cin>>interval;
cout<<endl;
 
 
//опреляем имя и путь к готовому файлу, он будет лежать там же где исходник, но с именем...SORT.txt
int j=0;
 
while (str[j]!='.') 
{
    str1[j]=str[j];
    j++;
}
str1[j]='S';
j++;
str1[j]='O';
j++;
str1[j]='R';
j++;
str1[j]='T';
j++;
str1[j]='.';
j++;
str1[j]='t';
j++;
str1[j]='x';
j++;
str1[j]='t';
j++;
str1[j]=0; // ставим чтобы не писалось в массив лишнее
 
 
//Определяем значение xlineMAX ///////////////////////////////////////////////////////
 f.open (str,ios::in);//Открываем файл в режиме чтения
    //Проверка успешности открытия файла:
  if (f.fail()) {cout<<"\n Ошибка открытия файла";
                 exit(1);
                }
 while (!f.eof())//пока не достигнут конец файла
{       
for (int i = 0; i < 9; i++) // читаем строку из файла и записываем ее код и значения в массив massiv_str
    {
       //7  f>>s; 
        if( !(f>>s)  ) break;
        else {
              if (i == 5)  xlineMax=std::strtod( s.c_str(), NULL );
             }  
    }//for
 
}//while
//f.close();//Закрываем файл
 
while (xline<=xlineMax)
{
f.clear();
f.seekg(0, std::ios::beg);  // в начало файла
/////////////////////////////////////////////////////////////////////////////////////////
  //  f.open (str);//Открываем файл
//Проверка успешности открытия файла:
//if (!f.is_open()) {cout<<"\n Ошибка открытия файла";
//               exit(1);
  //             }
 
 while (!f.eof())//пока не достигнут конец файла
{      
        for (int i = 0; i < 9; i++) // читаем строку из файла и записываем ее код и значения в массив massiv_str
    {
        f>>s; 
        if (s.empty()) break;
        else {
              if (s == "INLINE")  massiv_str[i] = 1;  
              else {if(s == "XNLINE") massiv_str[i]=2; 
              else {if(s == ":") massiv_str[i] = 3;
                          else massiv_str[i] = std::strtod( s.c_str(), NULL ); //Функция strtod преобразовывает строку string в double. 
                         }
                    } 
              } // заполняли массив massiv_str[i]
        }//for
       
     
if (massiv_str[5] == xline)
{
    f1.open (str1,ios::app);//Открываем файл в режиме записи в конец файла
    //Проверка успешности открытия файла:
  if (f1.fail()) {cout<<"\n Ошибка открытия файла";
                 exit(1);
                }
 
  const int SIZE = 256;
  char s_out[SIZE];
      for (int i = 0; i < 9; i++) // пишем строку в файл, беря данные из массива massiv_str
    {
        if (massiv_str[i] == 1)  {strcpy(s_out,"INLINE"); 
                                  f1<<s_out; strcpy(s_out," "); 
                                  f1<<s_out; 
                                  } 
        else {if(massiv_str[i] == 2) {strcpy(s_out,"XNLINE"); 
                                     f1<<s_out; 
                                     strcpy(s_out," "); f1<<s_out;
                                      }  
              else {if(massiv_str[i] == 3) {strcpy(s_out,":"); 
                                            f1<<s_out; 
                                            strcpy(s_out," "); f1<<s_out; } 
              else { f1.precision(10);
                    // f1.setf(ios_base::showpoint); jnj,hf;ftn pfdthif.obt yekb0.
                    f1<<massiv_str[i];
                     cout<<massiv_str[i]<<endl; 
                     strcpy(s_out,"   ");
                     f1<<s_out;
                     }
                   }
             }//else
         //   if (i==8) cout <<endl;
          } //for
    f1<<"\n";   
    f1.close();//Закрываем файл
        } //if (massiv_str[6] == xline)
    
 
 
    }//while 
xline=xline+interval;
 
}//while (xline<=xlineMax)
f.close();//Закрываем файл
cout<<"\n Файл отсортирован и создан новый файл в  "<<str1<<endl;
system ("pause"); 
 //return 0;
 }//main
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2014, 16:10
Ответы с готовыми решениями:

Запись данных в файл построчно с заданным интервалом времени
Доброе время суток. Подскажите пожалуйста, как построчно записывать данные в файл с заданным интервалом времени. записываю данные...

Отсортировать в матрице столбцы по возрастанию значений элементов в строке с номером, заданным пользователем
writeln('Введите номер строки, по возрастанию элементов которой требуется отсортировать столбцы матрицы:'); readln(string_number); for...

Как создать файл с расширением txt и добавить в файл определенного количества строк заданным пользователем?
C# Как создать файл с расширением txt и добавить в файл определенного количества строк заданным пользователем???

15
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
12.11.2014, 16:31
Цитата Сообщение от Natalia_R Посмотреть сообщение
while (str[j]!='.') { str1[j]=str[j]; j++; } str1[j]='S'; j++; str1[j]='O'; j++; str1[j]='R'; j++; str1[j]='T'; j++; str1[j]='.'; j++; str1[j]='t'; j++; str1[j]='x'; j++; str1[j]='t'; j++; str1[j]=0; // ставим чтобы не писалось в массив лишнее
Господи, за что?!
если я правильно понимаю, ты сначала записываешь более или менее по-человечески имя файла, считанное в str, затем после этого имени продолжаешь дописывать в название SORT.TXT. зачем?

Добавлено через 6 минут
а, блин, понял. но зачем так сложно дописывать SORT.TXT?)
0
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
12.11.2014, 16:38  [ТС]
так я и в форуме для новичков.... У меня с именем нет проблем, может конечно сделано не умно, но хотя бы работает.
Мне пользователь вводит имя и путь к файлу, например D:\тест\piks.txt
Отсортированный файл я пишу ему в ту же папку, но D:\тест\piksSORT.txt , чтобы он не рыскал по всему компу

Добавлено через 1 минуту
А сложно потаму как туповаты мы еще (это я к себе на Вы :-) )

Добавлено через 2 минуты
Спасибо уже за то, что обратили на меня внимание!
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
12.11.2014, 17:15
Цитата Сообщение от Natalia_R Посмотреть сообщение
str1[j]='S'; j++; str1[j]='O'; j++; str1[j]='R'; j++; str1[j]='T'; j++; str1[j]='.'; j++; str1[j]='t'; j++; str1[j]='x'; j++; str1[j]='t'; j++; str1[j]=0; // ставим чтобы не писалось в массив лишнее
это можно было бы заменить на, к примеру, это:
C++
1
strcpy(str1 + j, "SORT.txt");
Добавлено через 16 минут
я скомпилил программу:
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
#include <QCoreApplication>
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstddef>
#include <locale.h>
#include <windows.h>
#include <string>
#include <cstring>
 
 
using namespace std;
 
 
int main(int argc, char *argv[])
{
    //QCoreApplication app(argc, argv);
 
    //Объявляем переменные
    double  xline;
    double  interval;
    double  xlineMax;
    ifstream    f;//Объявляем поток чтения из файла
    ofstream    f1;//Объявляем поток записи в файл
    char    str[100];//Строковая переменная (для пути к исходному файлу)
    char    str1[100];//Строковая переменная (для пути к готовому файлу)
    double  massiv_str[9]; // Массив, содержащий код и значения очередной строки в сортируемом файле
    string  s;// слово в строке сортируемого файла
 
 
    cout << "\n Enter path:\n";
    cin >> str;
    cout << "\n Enter value for XLINE:";
    cin >> xline;
    cout << "\n Enter interval:";
    cin >> interval;
    cout << endl;
 
 
    //опреляем имя и путь к готовому файлу, он будет лежать там же где исходник, но с именем...SORT.txt
    int     j = 0;
    while (str[j] != '.')
    {
        str1[j] = str[j];
        j++;
    }
    strcpy(str1 + j, "TEST.txt");
 
 
    //Определяем значение xlineMAX ///////////////////////////////////////////////////////
    f.open(str, ios::in);//Открываем файл в режиме чтения
    //Проверка успешности открытия файла:
    if(!f.is_open())
    {
        cout << "\n file not opened";
        exit(1);
    }
 
    while (!f.eof())//пока не достигнут конец файла
    {
        for (int i = 0; i < 9; i++) // читаем строку из файла и записываем ее код и значения в массив massiv_str
        {
       //7  f>>s;
            if( !(f >> s)  )
                break;
            else
            {
                if (i == 5)
                    xlineMax = std::strtod( s.c_str(), NULL );
            }
        }//for
    }//while
//f.close();//Закрываем файл
 
    while (xline <= xlineMax)
    {
        f.clear();
        f.seekg(0, std::ios::beg);  // в начало файла
        while (!f.eof())//пока не достигнут конец файла
        {
            for (int i = 0; i < 9; i++) // читаем строку из файла и записываем ее код и значения в массив massiv_str
            {
                f >> s;
                if (s.empty())
                    break;
                else
                {
                    if (s == "INLINE")
                        massiv_str[i] = 1;
                    else
                    {
                        if(s == "XNLINE")
                            massiv_str[i] = 2;
                        else
                        {
                            if(s == ":")
                                massiv_str[i] = 3;
                            else
                                massiv_str[i] = std::strtod( s.c_str(), NULL ); //Функция strtod преобразовывает строку string в double.
                        }
                    }
                } // заполняли массив massiv_str[i]
            }//for
 
            if (massiv_str[5] == xline)
            {
                f1.open(str1, ios::app);//Открываем файл в режиме записи в конец файла
                //Проверка успешности открытия файла:
                if (!f1.is_open())
                {
                    cout<<"\n Ошибка открытия файла";
                    exit(1);
                }
 
                const int SIZE = 256;
                char s_out[SIZE];
                for (int i = 0; i < 9; i++) // пишем строку в файл, беря данные из массива massiv_str
                {
                    if (massiv_str[i] == 1)
                    {
                        strcpy(s_out,"INLINE");
                        f1 << s_out; strcpy(s_out," ");
                        f1 << s_out;
                    }
                    else
                    {
                        if(massiv_str[i] == 2)
                        {
                            strcpy(s_out, "XNLINE");
                            f1 << s_out;
                            strcpy(s_out, " ");
                            f1 << s_out;
                        }
                        else
                        {
                            if(massiv_str[i] == 3)
                            {
                                strcpy(s_out,":");
                                f1 << s_out;
                                strcpy(s_out, " ");
                                f1 << s_out;
                            }
                            else
                            {
                                f1.precision(10);
                                // f1.setf(ios_base::showpoint); jnj,hf;ftn pfdthif.obt yekb0.
                                f1 << massiv_str[i];
                                cout << massiv_str[i] << endl;
                                strcpy(s_out, "   ");
                                f1 << s_out;
                            }
                        }
                    }//else
                    //   if (i==8) cout <<endl;
                } //for
                f1 << "\n";
                f1.close();//Закрываем файл
            } //if (massiv_str[6] == xline)
        }//while
        xline = xline + interval;
        }//while (xline<=xlineMax)
    f.close();//Закрываем файл
    cout << "\n File is sorted:  " << str1 << endl;
 
    return /*app.exec()*/0;
}
У меня в сортированный файл скопировалось:
INLINE : 233 0 : 202 668417 565878 995
INLINE : 234 0 : 202 668442 565878 996
INLINE : 237 0 : 204 668517 565878 996
INLINE : 239 0 : 206 668567 565878 999
INLINE : 241 0 : 206 668617 565878 1001

В прогу я передал значение 202 и интервал 2.

Я правил только проверку на открывание файла.

Кстати, отсортированный файл с каждым разом дописывается, старое не затирается. учти это.

Добавлено через 4 минуты
а если в исходном .txt файле заменить запятые на точки, то получится вывод (при тех же входных данных):
INLINE : 233 0 : 202 668417.5 565878 995.87421
INLINE : 234 0 : 202 668442.5 565878 996.36517
INLINE : 237 0 : 204 668517.5 565878 996.78815
INLINE : 239 0 : 206 668567.5 565878 999.11261
INLINE : 241 0 : 206 668617.5 565878 1001.53223
0
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
13.11.2014, 08:45  [ТС]
Надо же... Спасибо!. Тогда если можно еще вопрос. Запустила нормальный документ на сортировку (он под тысячу страниц) - довольно долгий процесс.... не подскажите, где тут можно алгоритм оптимизировать. У меня на каждое новое значение xline вся тысяча перебирается заново. Интуитивно чувствую - что такой вариант - самый долгоиграющий....
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 09:39
я, честно говоря, сильно в код не вникал. Как идет обработка? строки из исходного файла, которые подходят для результирующего файла могут меняться в процессе местами? т.е. xline в исходном файле 204 может стоять раньше xline 202? и может ли отсутствовать элемент 206, например:
202
203
204
204
207
208
0
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
13.11.2014, 10:09  [ТС]
Исходный файл
INLINE : 233 XLINE : 202 668417,50000 565878,00000 995,87421
В нем параметр XLINE все время возрастает, но нам нужны строки только со значением параметра 202, 214, 226... (кратные 12 в данном случае). Структура исходного файла всегда приблизительно одинакова, разные только цифры. Файлы большие. Поэтому руками их лопатить сложно и долго.
Алгоритм в общем виде такой:
Открываем файл и первый раз прогоняем до конца чтобы узнать максимальное значение XLINE.
Потом пока (xline<=xlineMax)
идем в начало файла каждую анализируем строку, если xlin нам нравится, пишем ее в создаваемый файл
Дошли до конца файла, меняем значение xline=xline+interval;
И погнали файл заново.
Т.е. если у меня xline от 202 до 800, а страниц ф файле в районе тысячи - то времени этот процесс занимает достаточно много. Это конечно не критично, т.к. руками все равно дольше, но как то кажется что есть более простое решение... как с SORT.txt :-)
А зачем int main(int argc, char *argv[])? чем плохо void?
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 10:26
А вообще, на мой взгляд, максимальное значение xline нам и не надо. если разница между найденным и заданным xline кратна введенному интервалу, то копипастим строку в новый файл.

Цитата Сообщение от Natalia_R Посмотреть сообщение
А зачем int main(int argc, char *argv[])? чем плохо void?
в нашем случае ничем, это параметры командной строки, передаваемые при запуске в программу.

попробуй вот это:
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
//#include <QCoreApplication>
#include <iostream>
#include <fstream>
#include <string>
 
int main(int argc, char *argv[])
{
    //QCoreApplication app(argc, argv);
 
    std::cout << "Enter path:\n";
    std::string     path;
    std::cin >> path;
 
    std::string::size_type  pos = path.find('.');
    std::string     destpath;
    if(std::string::npos == pos)
    {
        std::cout << "Uncorrect path.\n";
        return  -1;
    }
    destpath = path.substr(0, pos) + "TEST.txt";
 
    std::cout << "Enter XLINE:\n";
    int     xline = 0;
    std::cin >> xline;
 
    std::cout << "Enter interval:\n";
    int     interval = 0;
    std::cin >> interval;
 
    std::ifstream   infile;
    infile.open(path.c_str());
    if(false == infile.is_open())
    {
        std::cout << "File " << path << " is not opened\n";
        return  -1;
    }
    std::ofstream   outfile;
    outfile.open(destpath.c_str(), std::ios::app);
    if(false == outfile.is_open())
    {
        std::cout << "File " << destpath << " is not opened\n";
        return  -1;
    }
 
    char    buff[64];
    std::string     tmpstr;
    int     xlinetmp = 0;
    std::vector<std::string>     vect;
 
    while(false == infile.eof())
    {
        infile >> tmpstr;
        if("INLINE" == tmpstr)
        {
            if(false == vect.empty())
            {
                std::cout << vect[5].c_str() << std::endl;
 
                xlinetmp = atoi(vect[5].c_str());
                if(0 == (xlinetmp - xline) % interval)
                {
                    std::string     s;
                    int     vsize = vect.size();
                    for(int i = 0; i < vsize; ++i)
                        s += vect[i] + " ";
                    outfile << s << "\n";
                }
                vect.clear();
            }
        }
        vect.push_back(tmpstr);
    }
 
    infile.close();
    outfile.close();
 
    return /*app.exec()*/0;
}
Добавлено через 4 минуты
Цитата Сообщение от Natalia_R Посмотреть сообщение
Поэтому руками их лопатить сложно и долго.
я восхищен, ты решила применить программирование для решения рутинной задачи!
0
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
13.11.2014, 10:33  [ТС]
А для чего тогда оно нужно - если не решать рутинные задачи :-) Спасибо - сейчас буду изучать как работает голова у профи

Добавлено через 1 минуту
А насчет int main(int argc, char *argv[])?
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 10:35
Natalia_R, программа-то правильно работает? все хорошо?

Цитата Сообщение от Natalia_R Посмотреть сообщение
А для чего тогда оно нужно - если не решать рутинные задачи :-)
некоторым, например, чтобы лабораторки преподавателю втюхать, а потом ржать над этим в курилке.

Добавлено через 1 минуту
Цитата Сообщение от Natalia_R Посмотреть сообщение
А насчет int main(int argc, char *argv[])?
я уже ответил: это параметры командной строки, передаваемые в программу. их можно опускать. в любом случае в нашем конкретном случае нигде обработка этих параметров не ведется, поэтому можно смело писать void.
0
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
13.11.2014, 10:37  [ТС]
ссори, невнимательность
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 10:40
Цитата Сообщение от Natalia_R Посмотреть сообщение
ссори, невнимательность
ничего. проверяй программу. если что-то не так или будут вопросы по коду, пиши.
0
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
13.11.2014, 10:46  [ТС]
ну лабораторки - это дело давнее, да и программер из меня не вышел в свое время....
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 10:50
Цитата Сообщение от Natalia_R Посмотреть сообщение
да и программер из меня не вышел в свое время....
ты-то свой алгоритм реализовала? да, реализовала. и по большому счету все работало. так в чем проблема? программер из тебя выйти может без проблем.
0
0 / 0 / 0
Регистрация: 29.10.2014
Сообщений: 33
13.11.2014, 10:59  [ТС]
Это вряд ли, но решать вот такие задачки очень бы хотелось научится. И спасибо за отклик.
0
118 / 118 / 41
Регистрация: 14.12.2013
Сообщений: 352
13.11.2014, 11:02
Natalia_R, не за что.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2014, 11:02
Помогаю со студенческими работами здесь

Реализовать метод, вычисляющий значение функции с заданным диапазоном (интервалом для вычислений) и заданным шагом
Реализовать метод, вычисляющий значение функции с заданным диапазоном (интервалом для вычислений) и заданным шагом. Виды функций,...

Вывод результата программы в текстовый файл и в двоичный файл с именем, задаваемым пользователем
Подскажите пожалуйста, что нужно исправить. Нужно организовать вывод результата программы в текстовый файл и в двоичный файл с именем,...

Сохранение в файл с заданным пользователем именем
это вот дельце поставило меня в тупик. надо сохранить переменную или, например, текст в TEdit в файл *.key , имя которого задает...

Создайте текстовый файл. Во второй файл запишите строку с заданным номером
Создайте текстовый файл. Во второй файл запишите строку с заданным номером. сделать через функции/процедуры var f1, f2:...

Отсортировать файл по заданным требованием
Доброго времени суток, есть задача отсортировать файл по данным требованием: остортировать строки по отношению столбам сортировать...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru