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

Передача данных в другую программу

13.06.2015, 17:22. Показов 6752. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать, чтобы одна программа принимала входные данные от другой?

Первая программа должна читать данные из файла in.txt, делать проверку, и передавать второй программе, которая должна записывать их в файл out.txt.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2015, 17:22
Ответы с готовыми решениями:

Передача переменной в другую программу
Подскажите примеры реализации. Незнаю там ли тему создал.. Необходимо из dll библиотеки на c++ передать строковую переменную в c# wpf...

Передача данных в другую область видимости
Задание 1. Написать следующие функции для работы с динамическим массивом: a. Функция распределения динамической памяти. b. Функция...

Передача текста на другую программу и +
Привет ребята, Нужно реализовать: Передача текста на другую программу и далее нажать в том же окне в кнопку.. делаю через handle...

8
2 / 2 / 0
Регистрация: 07.06.2015
Сообщений: 9
13.06.2015, 19:14  [ТС]
Помогите с решением сложной задачи.
Есть файл spooky.csv с некоторыми данными.

// Файл spooky.csv
42.363400, -71.098465, Speed = 21
42.363327, -71.097588, Speed = 23
42.363255, -71.096710, Speed = 17
42.363182, -71.095833, Speed = 22
42.363110, -71.094955, Speed = 14
42.363037, -71.094078, Speed = 16
42.362965, -71.093201, Speed = 18
42.362892, -71.092323, Speed = 22
42.362820, -71.091446, Speed = 17
42.362747, -71.090569, Speed = 23
42.362675, -71.089691, Speed = 14
42.362602, -71.088814, Speed = 19
42.362530, -71.087936, Speed = 16
42.362457, -71.087059, Speed = 16
42.362385, -71.086182, Speed = 21

Так же есть программа Geo2JSon.exe

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
 // Geo2JSon.cp
#include <stdio.h>
#include <locale.h>
#include <string.h>
 
int main()
{   
    setlocale(LC_ALL, "russian");
 
    float  latitude;
    float  longitude;
    char   info[80];
    int    started = 0;
 
    fprintf(stderr, "%s\n", "ge2sun start ...\n");
 
    puts("data=[");
    while ( scanf("%f, %f, %79[^\n]", &latitude, &longitude, info) == 3 )
    {
        // Проверка считанных данных
        if ( (latitude<-90.0) || (latitude>90.0) )
        {
            fprintf(stderr, "Неправильная широта: %f\n", latitude);
            return 2;
        }
 
        if ( (longitude<-180.0) || (longitude>180.0) )
        {
            fprintf(stderr, "Неправильная долгота: %f\n", longitude);
            return 2;
        }
 
        fprintf(stderr, "%s\n", "geo2sun printf");
        printf("{latitude: %f, longitude: %f, info: '%s'},\n", latitude, longitude, info);
    }
 
    puts("]");
 
    fprintf(stderr, "%s\n", "ge2sun stop.\n");
 
    return 0;
}
Мне нужно с помощью другой программы Bermuda.exe с помощью перенаправления входного потока считать данные из файла spooky.csv и те из них, которые удовлетворяют некоторым условиям, отправить в программу Geo2JSon.exe.
Geo2JSon.exe в свою очередь с перенаправленным выходным потоком должна отправить отформатированные данные в файл output.json

Вот файл Bermuda.cpp
Функции типа fprintf(stderr, "%s\n", "bermuda start ...\n"); написаны только для того, чтобы можно было посмотреть результат в консоли.
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
// Bermuda.cpp
#include <stdio.h>
#include <locale.h>
#include <string.h>
 
int main()
{   
    setlocale(LC_ALL, "russian");
 
    float  latitude;
    float  longitude;
    char   info[80];
    int    started = 0;
 
    fprintf(stderr, "%s\n", "bermuda start ...\n");
 
    puts("data=[");
    while ( scanf("%f, %f, %79[^\n]", &latitude, &longitude, info) == 3 )
    {
        if ( (latitude>26) && (latitude<60) )
            if ( (longitude>-76) && (longitude<-64) )
            {
                fprintf(stderr, "%s\n", "Bermuda printf()");
                printf("%f, %f, %s\n", latitude, longitude, info);
            }
    }
 
    puts("]");
 
    fprintf(stderr, "%s\n", "bermuda stop.\n");
 
    return 0;
}
Дальше создал файл Bermuda.bat для запуска программы

// Файл Bermuda.bat
(Bermuda.exe | Geo2JSon.exe) < spooky.csv > output.json
pause

После работы в файл output.json записывается только это

// Файл output.json
data=[
]

Что я делаю не так? Где ошибка?

Добавлено через 19 минут
В консоль непонятно что выводится. Иногда результаты отличаются!

D:\Curlab>(Bermuda.exe | Geo2JSon.exe) 0<spooky.csv 1>output.json
bermuda start ...

Berge2sun smuda printf()
Btart ...

ermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
bermuda stop.

ge2sun stop.


D:\Curlab>pause
Для продолжения нажмите любую клавишу . . .

Добавлено через 4 минуты
D:\Curlab>(Bermuda.exe | Geo2JSon.exe) 0<spooky.csv 1>output.json
bermuda start ...

Bermuda printf()
Bermuda printf()
ge2sun sBermuda printf()
tart ...

Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
Bermuda printf()
bermuda stop.

ge2sun stop.


D:\Curlab>pause
Для продолжения нажмите любую клавишу . . .
0
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
13.06.2015, 21:40
zer0ed, попробуйте через буфер обмена - 1 программа копирует в буфер обмена данные, запускает 2 программу, 2 программа читает из буфера обмена.
О работе с буфером обмена - например, здесьhttp://devdelphi.ru/?p=278
0
2 / 2 / 0
Регистрация: 07.06.2015
Сообщений: 9
13.06.2015, 22:01  [ТС]
Joey, Вы случайно не знаете, как соединить стандартный вывод одной программы со стандартным вводом другой?

Почему это не работает?
(Bermuda.exe | Geo2JSon.exe) < spooky.csv > output.json

Весь день вожусь с этой задачей
0
 Аватар для iRomul
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
13.06.2015, 22:08
А если так:
Bash
1
Bermuda 0<spooky.cvs 2>err.log  | Geo2JSon 1>output.json
2
Джоуи
 Аватар для Joey
1083 / 645 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
13.06.2015, 22:09
zer0ed, в этом не могу помочь
1
2 / 2 / 0
Регистрация: 07.06.2015
Сообщений: 9
13.06.2015, 22:22  [ТС]
iRomul, не, не то.

Добавлено через 9 минут
Хм, скобки убрал. Вроде заработала
Bash
1
2
Bermuda.exe | Geo2JSon.exe < spooky.csv > output.json
pause
D:\Curlab>Bermuda.exe | Geo2JSon.exe 0<spooky.csv 1>output.json
bermuda start ...

ge2sun start ...

geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
geo2sun printf
ge2sun stop.

0
bermuda stop.


D:\Curlab>pause
Для продолжения нажмите любую клавишу . . .
0
0 / 0 / 0
Регистрация: 03.03.2023
Сообщений: 10
30.07.2023, 16:53
О спасибо за файлы, как раз читаю книгу, а сайт с которого предложено скачать файлы не работает.
0
-41 / 49 / 5
Регистрация: 10.01.2017
Сообщений: 1,915
30.07.2023, 16:56
Цитата Сообщение от zer0ed Посмотреть сообщение
Как сделать, чтобы одна программа принимала входные данные от другой?

Первая программа должна читать данные из файла in.txt, делать проверку, и передавать второй программе, которая должна записывать их в файл out.txt.
Один из самых простых способов через сокеты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.07.2023, 16:56
Помогаю со студенческими работами здесь

Передача параметров в другую программу
Здравствуйте, программисты! Есть некий exe файл, который принимает число и выдает его в зашифрованном виде. С этим exe работал успешно bat...

Передача данных на другую страницу
В общем, мне нужно было сделать так, что бы данные пользователя при нажатии на кнопку, записывались в базу данных, то есть из index.php...

Передача данных в другую форму
Подкопилось сразу несколько вопросов... 1) Мне с главной формы форм1 надо передавать на дочернюю форм2 некие данные типа String и занести...

Передача данных на другую страницу
Добрый вечер,подскажите, пожалуйста,как можно решить такую задачу. Есть страница,где в таблицу выводятся записи while ($r =...

Передача данных в другую форму
Доброго времени суток. Есть такая задача: в окне № 1 открывается таблица, выбирается запись, нажимается кнопка и открывается окно №2 с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru