Program szukający informacji w Pliku

Odpowiedz Nowy wątek
2011-04-02 13:04
l4C
0

Witam ^^

Mam do napisania program. Ma on za zadanie:

W Programie mam zmienną

int zadanie;

I Plik Tekstowy:

zadanie1=1
zadanie2=2
zadanie3=3
zadanie4=4

Program, ma za zadanie, jeżeli zmienna zadanie ma liczbę 4, to program ma w pliku przeszukać, w której linijce po znaku "=" jest liczba 4, a następnie wyświetlić to co jest przed znakiem "=", czyli w naszym przypadku "zadanie4".

Nie wiem jak się za to zabrać, ma ktoś jakiś pomysł?

Z góry THX za odpowiedź. :)

edytowany 2x, ostatnio: l4C, 2011-04-02 13:05

Pozostało 580 znaków

2011-04-02 13:24
0

Wczytać dane z pliku do mapy

map<int,string>

która mapuje wartość po znaku = na string przed znakiem =.
Potem po prostu wybierasz sobie z mapy po kluczu.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2011-04-02 13:51
l4C
0

Mógłbyś mi to jakoś przybliżyć? Jestem początkującym programistą.

Pozostało 580 znaków

2011-04-02 14:20
0

Mapa to jest coś jak tablica asocjacyjna. Pozwala ci związać te sobą klucz z wartością. Ty chciałbyś związać liczbę z jakimś napisem i to właśnie proponuje zrobić.

#include <map>
#include <string>
#include <iostream>
using namespace std;

int main()
{
  map<int,string> mapa;
  mapa.insert (pair<int,string>(1,"ala"));
  mapa.insert (pair<int,string>(7,"ma"));
  mapa.insert (pair<int,string>(15,"kota"));
  cout<<mapa[1]<<endl; //wypisze nam "ala"
  cout<<mapa[7]<<endl; //wypisze nam "ma"
  cout<<mapa[15]<<endl; //wypisze nam "kota"
  return 0;
}

Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2011-04-02 14:47
l4C
0

Rozumiem, że zamiast liczby można wprowadzić też string?

A 2 pytanie, jak odczytać dane z pliku i dodać obsługę, żeby wczytywało przed i za znakiem "=" ?

Pozostało 580 znaków

2011-04-02 15:01
0

Możesz mapować dowolny typ na dowolny typ.
Wczytujesz całą linię a potem dzielisz sobie za pomocą stringstream


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2011-04-02 15:45
l4C
0

Dobra, jest jedna kwestia, a ma ktoś pomysł jak zrobić jak będzie taka sytuacja, że mapa będzie taka:

mapa.insert (pair<string,string>("ala","podmiot"));
  mapa.insert (pair<string,string>("ma","czasownik"));
  mapa.insert (pair<string,string>("kota","rzeczownik"));

i mam tablice:

tablica[1] == "Ala";
tablica[2] == "Ma";
tablica[3] == "Kota";

I program pokazałby:

Ala - podmiot
Ma -czasownik
Kota - rzeczownik

Program musiałby sprawdzać, czy jakaś zmienna z tablicy jest w mapie, a następnie pokazać to co w niej się znajduje (rzeczownik etc.)
Ma ktoś jakiś pomysł?

edytowany 2x, ostatnio: l4C, 2011-04-02 15:46

Pozostało 580 znaków

2011-04-02 15:50
1

Ale gdzie widzisz problem? Pomijam kwestie twojego niedouczenia jeśli chodzi o jezyk polski. Bo "podmiot" to zupełnie inna klasyfikacja niż "rzeczownik" i "czasownik". "Podmiot" pochodzi z rozkładu logicznego zdania, a "rzeczownik" czy "czasownik" to po prosty klasyfikacja słów ze względu na to jakimi są częściami mowy. Co ty właściwie chcesz uzyskać? Bo wygląda mi to na pisanie jakiegoś programu związanego z przetwarzaniem języka naturalnego, przez kogoś kto nie zna się ani na dziedzinie (w tym przypadku na języku polskim) ani na stronie technicznej (czyli programowaniu). Może warto się najpierw nauczyć przynajmniej jednego?


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2011-04-02 16:25
l4C
0

Napisałem to tylko przykładowo, a w ogóle, nigdy nie interesowałem się J. Polskim, lecz nie czuje się z tego powodu gorszy.
Co chce uzyskać?
Takowy program, do którego mogę wprowadzić słowo, tutaj przykładowo: Ala
Następnie program ma sprawdzić w bazie tekstowej


Ala=podmiot
ma=czasownik

czy jest takie słowo jak Ala (lecz ja nie znam tego z góry, program ma przeszukać).
Jeżeli jest takie słowo ma do zmiennej


string slowo;

zapisać to co jest po znaku "=", czyli słowo "podmiot".

Rozumiesz?

Pozostało 580 znaków

2011-04-02 17:23
Gygus
0

Mi się wydaje, że lepsze by było czytanie po kolei każdą linijkę pliku, a zarazem sprawdzanie czy dane hasło istnieje. Jeżeli tak to stopujesz pętle i pobierasz info po jej znaku równania '='.

Pozostało 580 znaków

2011-04-02 17:25
l4C
0

Ciężej, jeżeli tych linijek jest 50000, wtedy jest to dość wolna metoda.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0