Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » DYD 18:38
 » MARtiuS 18:37
 » leon 18:35
 » Doczu 18:30
 » past 18:29
 » KHot 18:29
 » ligand17 18:28
 » ili@s 18:24
 » SebaSTS 18:24
 » Tomasz 18:23
 » Paweł27 18:18
 » bajbusek 18:18
 » piszczyk 18:16
 » Wolf 18:04
 » Liu CAs 18:02
 » Pawelec 17:58
 » petropank 17:53
 » Markizy 17:52
 » dugi 17:51
 » PiotrexP 17:37

 Dzisiaj przeczytano
 41099 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2024
A R C H I W A L N A   W I A D O M O Ś Ć
    

[programowanie] Pętelka w C++ i przeniesienie jej do C# , Soulburner 26/03/09 20:40
Dłubię sobie taki mały programik do odtwarzania radia internetowego i wpadłem na pomysł, aby wczytywał dane sobie z pliki txt/ini.

Programowałem troszeczkę wcześniej w C++, dlatego kodzik wczytujący dane do macierzy napisałem pierwej tam. Wymodziłem takie coś:

---
float button[100]; //numer przycisku, pod którym siedzi dane radio; nieużywane w programie, informacyjnie do edycji pliku
string value[100]; //adres streamu
string name[100]; //nazwa streamu oraz przycisku
ifstream dane ("dane2.txt");
ofstream wyjscie("wyjscie2b.txt");

int ile=0;
while(dane >> button[ile] >> value[ile] >> name[ile])
{
ile++;
}
ile--;

for (int i=0; i<ile+1; i++)
{
//button[i] = value[i];
cout<<"button["<<i<<"] = "<<value[i]<<" = "<<name[i]<<endl;
}

cout<<"value0 = "<<value[0];
cout<<"\n\n";

cout<<"Przycisk pierwszy ("<<button[0]<<") to link "<<value[0]<<" o nazwie "<<name[0]<<endl;
---

Działa toto zacnie, czyli robi, co ma robić. Potem przeszedłem do Visual Studio 2008 Express i zacząłem modyfikować kod. Dość szybko napotkałem przeszkodę:
StreamReader dane = new StreamReader("data.txt");
int [] button; //numer przycisku, pod którym siedzi dane radio;
string [] value; //adres streamu
string [] name; //nazwa streamu oraz przycisku
int ile = 0;
//dotąd zmiany są delikatne i łatwo można się ich domyśleć
while (dane >> button[ile] >> value[ile] >> name[ile]) //tutaj zonk...
{
ile++;
}
ile--;
---
Kompilator Visual Studio mówi, że operator >> w tym miejscu nie może być zastosowany. Dostałem jakiegoś zaćmienia umysłu i nie mogę wymyśleć innej pętli czyniącej to samo.

Pytania:
1) czym zastąpić operatory >> w tej pętli? Musi istnieć jakiś odpowiednik w C#...
2) jak inaczej sformułować tą pętlę, aby była łatwiejsza przy przenoszeniu między językami?

Z góry dzięki za wszelką pomoc :)

You must gather your party before
venturing forth.

  1. acha , Soulburner 26/03/09 20:41
    oczywiście w C++ powinien być int zamiast float, ale jednocześnie robiłem jakiś chory program na zajęcia z metod numerycznych i mogło mi się pomylić ;)

    You must gather your party before
    venturing forth.

  2. [;..;] , GesTee 26/03/09 23:04
    hmmm spróbuj moze zamiast cin/cout wyrobic nawyk printf/scanf

    printf ("costam %s", zmienna_z_napisem);
    scanf("%s", &zmienna_do_ktorej_wczytujesz);

    ble ble chyba czaisz

    jest jeszcze takie cuś jak "Console.WriteLine();" ale niewiem czy to cos ci pomorze, ten board to nie miejsce na tapie pytania ;p jak bys mial dylemat z wyborem pralki albo opiekacza to juz szybciej

    :)

    1. hehe , Soulburner 27/03/09 00:07
      dzięki za odpowiedź, niestety to nie pomoże - chodzi tylko o pętlę wrzucającą kolejne znaki z każdej linii pliku txt do odpowiednich macierzy w zmiennych. Program jest okienkowy, więc Console.WriteLine() itp. nie ma zastosowania - zresztą, chodzi tylko o tą jedną pętlę, która jest niezależna od tego, czy program jest konsolowy czy okienkowy.

      Faktycznie pójdę z tym problemem na jakieś forum o programowaniu - sądziłem jednak, że skoro są tu specjaliści od AGD, to znajdzie się jakiś mastah kodowania ;)

      You must gather your party before
      venturing forth.

      1. hmm , bartek_mi 27/03/09 00:24
        1.
        w c# inaczej otwierasz pliki txt. to co masz to C++sowe paskudstwo, ktore sie na nic normalnego nie przeniesie. do tego to jakis dirty-hack, dajacy +1 do c++_hacking_masta


        wczytujesz linia po lini a potem juz zabawa stringami (na przyklad split) - masz jakis format pliku
        wszystko jest w System.IO

        przyklad:
        http://msdn.microsoft.com/...mreader.readline.aspx

        jak chcesz pisac w c# to zaprzyjaznij sie z MSDN - lepszego helpa nie ma i nie bedzie :)
        do tego codeguru i codeproject i jazda

        do tego ta "macierz" to slaba ciut - jak na moje oko to 3 tablice :)

        zrob no klase i liste (System.Collections.ArrayList badz List<T>

        2.
        jak masz aplikacje okienkowa to zrob forme z labelka i na nich mozesz pisac. (label1.Text = ""; )

        jak chcesz cos raz kiedys testowo wywalic to masz MessageBox.Show("");

        w debugu mozesz pisac na output System.Diagonostic.Degug.WriteLine("");

        a podstawa to ListView do ktorych wrzucasz element ListVeiwItem

        mozesz jeszcze uzyc datagrida ale to buractwo :)

        to tak na szybko - chyba nic nie pokrecilem :)

        dzisiaj jest jutrzejszym wczoraj

        1. dzięki za porady , Soulburner 27/03/09 11:04
          widać od razu, że z programowaniem zbyt często się nie stykam, stąd mylenie pojęć i nieświadome używanie hacków w cpp zamiast czegoś normalnego ;)

          MSDN, oczywiście, jest mega-potężną bazą, tylko za chorobę nie mogłem znaleźć jak zmieniać głośność "podpiętego" WMP, co znalazłem dopiero w jakimś tutorialu VB na którymś forum... ale może po prostu nie umiem szukać ;)

          You must gather your party before
          venturing forth.

    
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL