[Borland C++ Builder] Operacje na plikach

0

Nie znam sie na assamblerze wiec przy debugowaniu nie za dużo rozumiem z tych offsetów;p Dlaczego podczas pokazania tej definicji w ShowMessage i wcisnieciu ok niespodziewanie aplikacja sie zamyka (bez żadnych błędów) tylko borland przy debugowaniu coś krzyczał(poniższy listing) :S

Problem odnośnie tego jak zrobić żeby wczytał mi się text z 2 lini a nie tylko z 1:/

#include <vcl.h>
#include <iostream.h>
#pragma hdrstop

#include "Unit7.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm7 Form7;
//---------------------------------------------------------------------------
__fastcall TForm7::TForm7(TComponent
Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm7::Button1Click(TObject *Sender)
{
FILE *plik;
char bufor[50];
plik=fopen("definicje/poleprostokata.txt","rt");
if ( plik==NULL ){
ShowMessage("Nie znalazlem pliku");
}

fgets(bufor,100,plik);
ShowMessage(bufor);
fclose(plik);

}

0

To proste, problem lezy w tym:

fgets(bufor,100,plik);
ShowMessage(bufor);
fclose(plik);

Jezeli plik nie istnieje, to komunikat jest wyswietlany, ale powyzszy kod jest wykonywany, a nie powinien byc. Dodaj retrurn po ShowMessage albo else do if-a.

0

Nie no rozumiem, ale mi chodzi o to że po wciśnięciu ok na ShowMessage zamyka mi się program :| a chce pracować dalej w tym programie.

Drugi problem to czy da wczytać się tekst z pliku (wielowierszowy) i go wyświetlić?
Bo zawsze wyświetla się tylko pierwsza linia.

0

Po ktorym ShowMessage? Moim zdaniem zamykasz nieisteniejacy plik i dlatego program sie wykrzacza.

A co do odczytywania calego tekstu to poczytaj o funkcjach do operacji na plikach. Mozesz zastosowac fgets w petli albo odczytywanie znak po znaku.

0

widze ze iostreama uzywasz to uzyj tez fstreama :/

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