2 / 2 / 0
Регистрация: 07.06.2015
Сообщений: 9
1

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

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

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

Первая программа должна читать данные из файла in.txt, делать проверку, и передавать второй программе, которая должна записывать их в файл out.txt.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2015, 17:22
Ответы с готовыми решениями:

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

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

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

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

8
2 / 2 / 0
Регистрация: 07.06.2015
Сообщений: 9
13.06.2015, 19:14  [ТС] 2
Помогите с решением сложной задачи.
Есть файл 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
Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
13.06.2015, 21:40 3
zer0ed, попробуйте через буфер обмена - 1 программа копирует в буфер обмена данные, запускает 2 программу, 2 программа читает из буфера обмена.
О работе с буфером обмена - например, здесьhttp://devdelphi.ru/?p=278
0
2 / 2 / 0
Регистрация: 07.06.2015
Сообщений: 9
13.06.2015, 22:01  [ТС] 4
Joey, Вы случайно не знаете, как соединить стандартный вывод одной программы со стандартным вводом другой?

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

Весь день вожусь с этой задачей
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
13.06.2015, 22:08 5
А если так:
Bash
1
Bermuda 0<spooky.cvs 2>err.log  | Geo2JSon 1>output.json
2
Джоуи
1081 / 643 / 240
Регистрация: 05.05.2015
Сообщений: 3,559
Записей в блоге: 2
13.06.2015, 22:09 6
zer0ed, в этом не могу помочь
1
2 / 2 / 0
Регистрация: 07.06.2015
Сообщений: 9
13.06.2015, 22:22  [ТС] 7
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 8
О спасибо за файлы, как раз читаю книгу, а сайт с которого предложено скачать файлы не работает.
0
Нарушитель
71 / 48 / 5
Регистрация: 10.01.2017
Сообщений: 1,862
30.07.2023, 16:56 9
Цитата Сообщение от zer0ed Посмотреть сообщение
Как сделать, чтобы одна программа принимала входные данные от другой?

Первая программа должна читать данные из файла in.txt, делать проверку, и передавать второй программе, которая должна записывать их в файл out.txt.
Один из самых простых способов через сокеты.
0
30.07.2023, 16:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.07.2023, 16:56
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru