Wczytywanie pliku OpenFileDialog

0

Witam,
Potrzebuję pomocy. Mam zrobić odczyt macierzy z pliku i ładowanie jej do tablicy. Ze beda podane liczby i on po kolei bedzie wczytywać wszystko. Ale nie mogę sie z tym Visualem Studio 2008 poradzić. Robie include<string> a jak chce zrobic jakiegos stringa to mi pisze undeclared ;/ o co chodzi. na razie mam takie cuś i tez za bardzo tego nie kumam jak to działa i jak to walnac do stringa ta zawartosc tego pliku zeby sobie czytac np znak po znaku. Co to w ogóle są te ^ ?? ;/

private: System::Void button1_Click(System::Object<sup>  sender, System::EventArgs</sup>  e) {

  if(openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
  {
     System::IO::StreamReader ^ sr = gcnew
        System::IO::StreamReader(openFileDialog1->FileName);
     MessageBox::Show(sr->ReadToEnd());
          MessageBox::Show( openFileDialog1->FileName);

     sr->Close();
  }

         }
};

}

0

Ty w ogóle wiesz w czym piszesz? Wiesz co to jest C++/CLI, CLR, .NET, co to jest i czym się różni od biblioteki standardowej C++?

0

no wiem w czym pisze ale nie bardzo to ogarniam ;/ nie umiem tez znaleźć zadnych tutoriali takich przydatnych najlepiej po polsku

0

Polecam kupić porządną książkę, bo tutorial to trochę za mało na poznanie C++, C++/CLI i .NET.

0

kurde ale jedyną rzeczą jaką mam zrobić to wczytanie macierzy z pliku tekstowego do tablicy... Reszte robie w MASM. A musimy uzyć Virtual Studio którego niestety nie znam. Pisałem juz w Qt czy Builderze ale ten .NET mnie zabija... moze jakos pomozecie jak wczytac macierz z pliku tekstowego do tablicy zeby ja fajnie do MASMA przekazac

0

Nie słyszalem, żeby dało się pisać wstawki asemblerowe w aplikacji .NET (ale może czegoś nie wiem to wtedy przepraszam :) )
Prawdopodobnie użyłeś złego typu projektu - zamiast wybrać jeden z projektów typu Win32 (np. Win32 Console Application) prawdopodobnie wybrałeś jeden z typu CLR (np. Windows Forms Application).

Nie wiem jaką wasz wersję Visuala, ale powinieneś raczej użyć projektu Win32 i jeśli to ma być aplikacja okienkowa, to pisać GUI w MFC (niedostępne w Visual Studio Express), WinAPI lub jakiejkolwiek bibliotece GUI i wtedy możesz sobie wstawiać kod asemblerowy lub jak chcesz pisać GUI pod .NET (projekt typu CLR), to zapomnij o MASM.

0

Dlaczego próbujesz autorowi wmówić, że nie powinien czegoś robić i - ojezu - nie da się tego zrobić? Skoro nie jesteś pewny to przecież mogłeś to sprawdzić.

Kompilator C++/CLI dzieli sobie plik źródłowy na części (można mu pomóc przez #pragma). Jedne są kompilowane do MSIL, drugie bezpośrednio. Wstawek masma można użyć tylko w tych drugich funkcjach.

Program oczekuje pliku zawierającego jedną liczbę.

.386
.model flat,stdcall
.code
AsmIncreaseExtern proc number:DWORD
    inc number
    mov eax, number
    ret
AsmIncreaseExtern endp
end
using namespace System;
using namespace System::IO;
using namespace System::Windows::Forms;

extern "C" int __stdcall AsmIncreaseExtern(int number);

int AsmIncreaseInline(int number)
{
    __asm
    {
        inc number;
        mov eax, number
    }
}

[STAThread]
int main(array<System::String ^> ^args)
{
    Application::EnableVisualStyles();
    OpenFileDialog^ openFileDialog = gcnew OpenFileDialog();
    if(openFileDialog->ShowDialog() != DialogResult::OK) return 1;

    StreamReader^ streamReader = gcnew StreamReader(openFileDialog->OpenFile());

    int number = Int32::Parse(streamReader->ReadToEnd());

    streamReader->Close();

    number = AsmIncreaseInline(number);
    number = AsmIncreaseExtern(number);

    MessageBox::Show(number.ToString());

    return 0;
}
0

a mam jeszcze pytanie jak robie projekt win32 to nie idzie robić interfejsu metodą umieszczania formatek na formie, albo nie wiem jak to zrobić ?? :/ bo to by było jednak wygodniejsze dla mnie a ten masm mam zrobic jako osobny projekt który bedzie biblioteka dll. Doradzcie mi jaki najlepiej wybrac projekt w tym Visual Studio ;/

0

Możesz jaki chcesz. Możesz nawet w C# zrobić interfejs jak w masmie chcesz stworzyć samą bibliotekę. Problem jest raczej w tym, że ty żadnej z tych technologii nie znasz.

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