Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program w c++ - zaczytywanie plików txt + wykres

Ostatnio zmodyfikowano 2017-02-04 10:30
Autor Wiadomość
michal11
» 2017-01-16 21:53:29
Ja bym użył stringstream do tego, wczytywanie całej linii do stirnga i separacja istringstreamem
iss >> colon >> number;
 w jakiejś pętli.
P-156513
mokrowski
» 2017-01-16 22:23:58
C++14
#include <vector>
#include <fstream>
#include <string>
#include <sstream>
#include <iterator>
#include <iostream>
#include <memory>
#include <cstdlib>
#include <algorithm>

using namespace std;

// Kontener na dane.
using data_t = vector<vector<string>>;

// Wczytanie danych
unique_ptr<data_t> read_data_from_file(ifstream& file) {
    auto data = make_unique<data_t>();
    string line;
    while(getline(file, line)) {
        istringstream is(line);
        string field;
        auto row = data_t::value_type();
        while(getline(is, field, ':')) {
            row.push_back(field);
        }
        data->push_back(row);
    }
    return data;
}

// Wyświetlenie danych
ostream& operator<<(ostream& ostr, const data_t& data) {
    for(const auto& row : data) {
        ostr << "Row: ";
        copy(row.cbegin(), row.cend() - 1, ostream_iterator<string>(ostr, " "));
        ostr << row.back() << endl;
    }
    return ostr;
}

int main() {
    ifstream file("dane.txt");

    if(not file) {
        cerr << "Błąd odtwarcia pliku\n";
        exit(EXIT_FAILURE);
    }

    auto data = read_data_from_file(file);

    cout << *data;

    return EXIT_SUCCESS;
}
P-156521
r00t
Temat założony przez niniejszego użytkownika
» 2017-01-17 08:28:09
ok - dam znać jak wyszło jak wrócę do domu i podziałam z tematem. Dzieki chłopaki
P-156529
r00t
Temat założony przez niniejszego użytkownika
» 2017-01-17 22:40:50
test
P-156570
r00t
Temat założony przez niniejszego użytkownika
» 2017-01-17 22:41:28
Panowie, zrobiłem troche bardzo na około część tego programu, ponieważ mam deadline, a tym sposobem było mi latwiej bo go ogarniam. Mogłem próbować za pomocą strinstreamow i vektorow ale musialbym sporo na ten temat poczytać i pewnie jeszcze zmienić kompilator (uzywam aktualnie C++ buildera.)


Aktualnie schemat wygląda tak :

Czytam linie z pliku, wrzucam ją do stringa, i string dziele na poszczegolne stringi za pomocą substr, następnie te substr konwertuje do INTA, i wrzucam do tablicy dwuwymiarowej - i to jest zamknięte w pętli - wiersze zwiększają sie poprzez inkrementacje, a kolumny dodawane są z placa w pętli.

Nie krzyczcie na mnie że kod strasznie chaotyczny, ponieważ naprawdę zależy mi na czasie, żeby wyrobić się z terminem na studia (zostawiłem wszystko na ostatnią chwilę :(  )

Jeszcze kod nie dokończony jutro go dokończę, może jeszcze wpadne na lepszy pomysł.
Po wrzuceniu wszystkich danych do tablicy chcę tę tablicę połączyć jeszcze z inną jednowymiarową i wrzucić to na wykres (za pomocą f-nkcji lineTo)
A na samym końcu jeszcze dodać funkcjonalność, że gdy najade na dany pixel na wykresie pokaże mi wszystkie dane.


- macie pomysł jak to zrobić :D ?
- może jeszcze w między czasie dacie mi lepsze rozwiązanie, jeżeli dla kogoś to pikuś ...

Poniżej wrzucam kawałek pliku .txt :

:2015:06:01:00:00:t1:30.88:t2:48.38:t3:85.00:t4:85.00:p:17:em:480:e1:6:e2:0:e3:481:e4:475::
:2015:06:01:00:10:t1:29.25:t2:48.00:t3:85.00:t4:85.00:p:17:em:480:e1:4:e2:0:e3:478:e4:471::
:2015:06:01:00:20:t1:27.69:t2:48.13:t3:85.00:t4:85.00:p:17:em:480:e1:4:e2:0:e3:478:e4:477::
P-156571
r00t
Temat założony przez niniejszego użytkownika
» 2017-01-17 22:46:09
Chciaóbym Wam wrzucić kod, ale wywala mi błąd :

Blad 400
opis : Bad request

Sproboj pozniej
P-156573
r00t
Temat założony przez niniejszego użytkownika
» 2017-01-17 22:47:04
pierwsza częsc kodu :

C/C++
#include <vcl.h>
#include <iostream>
#include <fstream>
#include <cstdio>
#include <cstdlib>
#include <windows.h>
#include <string>
#include <algorithm>
#include <sstream>
#include <memory>
#include <vector>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
using namespace std;


string naglowki[ 14 ] = { "rok", "miesiac", "dzien", "godzina", "temp1",
    "temp2", "temp3", "temp4", "p", "em", "e1", "e2", "e3", "e4" };

stringstream dane_do;
string linia;
int i;
int j;
int dane[ 1 ][ 1 ];
int l = 1;
int main()

{
   
}
P-156574
r00t
Temat założony przez niniejszego użytkownika
» 2017-01-17 22:54:44
2 czesc kodu :

C/C++
TForm1 * Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1( TComponent * Owner )
    : TForm( Owner )
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click( TObject * Sender )
{
    fstream plik;
    plik.open( "Dane.txt", ios::in );
   
    if( plik.good() == false )
    {
        ShowMessage( "Bład otwarcia pliku" );
    };
   
    fstream plik2;
    plik2.open( "dane2.txt", ios::out | ios::app );
   
    while( getline( plik, linia ) ) {

W PETLI ZACZYTYWANIE, SUBSTR I KONWERSJA I LADOWANIE DO TABLICY - NIE WRZUCE BO WYWALA MI BLAD.


W sumie to możecie na mnie krzyczeć, chętnie wysłucham Waszej krytyki, przyda się jeżeli chcę być lepszym programistą.
Pozdrawiam i czekam na Wasze odpowiedzi ! :D
P-156575
1 « 2 » 3 4 5 6
Poprzednia strona Strona 2 z 6 Następna strona