SaveToFile nie działa c++ builder 6

0

Mam oto taki problemik: stworzyłem projekt ,w którym jednym z komponentów jest TComboBox a drugim
TEdit. Na pierwszym użyłem funkcji SaveToFile(); oraz LoadFromFile(); (wszystko działa jak powinno)potem wziąłem się za drugi. Został on umieszczony w nowym formularzu, użyłem w ten sam sposób obu funkcji, ale przy kompilacji wyskakuje błąd:

formularz->Edit->Text->SaveToFile("edit.txt");

"" E2288 Pointer to structure required on left side of -> or ->* "" [???]
Do cholery nie wiem czego ten kompilator chce. Wygląda jak by było wszystko dobrze.

0

Jesteś pewien, że istnieje taka metoda? Z komunikatu błędu wnioskowałbym, że nie.

0

przecieŻ napisałem ,że działa dla listy ale nie wiem dlaczego nie działa mi dla pola tekstowego. :/

0

Fun SaveToFile nie ma w klasie TEdit i String ( 'Text') , więc nie działa .
Jest natomiast w Klasie TStringList .

Jeśli koniecznie musi byc to SaveToFile to np :

TStringList* lista = new TStringList ;
 lista -> Add(formularz->Edit->Text);
 lista -> SaveToFile("edit.txt");
 delete lista ;
0

ja to robie tak :

if(SaveFileDialog1->Execute())
Edit->Text->SaveToFile(SaveFileDialog1->FileName);

i działa na bank

0

E2288 Pointer to structure required on left side of -> or ->*

@Pokemon
Text to obiekt klasy String , nie wskaźnik .
Nie można użyć takiego zapisu :

Edit -> Text -> ....

Tylko operatora '.' .
W klasie String nie ma funkcji SaveToFile , więc to wszystko g.. prawda .
Nawet Ci się ruszyć kompilatora nie chce i sprawdzić żeby nie wypisywać takich pierdołów. :/

0

Dobra poradziłem sobie w inny sposób. Zapis w rejestrze, a nie do pliku.

Myślę, że temat jest już zakończony.

0

Przyznaje się do błędu :-( Myślałem o Memo a kod skopiowałem i dopisałem swoje. w memo to by było tak

if(SaveFileDialog1->Execute())
Memo1->Lines->SaveToFile(SaveFileDialog1->FileName);
0
fstream strumien_plikowy;  // uchwyt do pliku (strumienia plikowego)
strumien_plikowy.open("plik.txt", ios::out, 0);
strumien_plikowy << formularz->Edit->Text.c_str(); // zapis zawartości formularza do strumienia ktory jest powiązany z plikiem "plik.txt". c_str konwertuje AnsiString na char
strumien_plikowy.close(); // zamknięcie uchwytu do pliku

Mam nadzieje,ze będzie działać, pisałem z pamięci :D

0

Wiem, ze stary temat, lecz pytanie dotyczy podobnej rzeczy.
Mianowicie chodzi mi o LoadFromFile:

TStringList* lista = new TStringList ;
 lista -> LoadFromFile("edit.txt");
 lista -> Add(formularz->Edit->Text);
 delete lista ;

Ofkorz powyzszy kod nie dziala. Moze ktos mi podpowiedziec jak to zrobic?

0

Trzecią linię zmień na

formularz->Edit->Text = lista->Text; //czy coś podobnego
0
LOSMARCELOS napisał(a)
fstream strumien_plikowy;  // uchwyt do pliku (strumienia plikowego)
strumien_plikowy.open("plik.txt", ios::out, 0);
strumien_plikowy << formularz->Edit->Text.c_str(); // zapis zawartości formularza do strumienia ktory jest powiązany z plikiem "plik.txt". c_str konwertuje AnsiString na char
strumien_plikowy.close(); // zamknięcie uchwytu do pliku

Mam nadzieje,ze będzie działać, pisałem z pamięci :D
Wystarczy:

ofstream("plik.txt") << formularz->Edit->Text.c_str();

W drugą stronę:

string text;
getline(ifstream("plik.txt"), text);
formularz->Edit->Text = text.c_str();
0

Fanael -dziekuje. Dziala, tyle ze jest maly blad w odczycie. Nie wiem czemu, za kazdym odczytem danych, na sam koniec sa dopisywane dwa znaki: || -jak mozna sie tego pozbyc?

0

Uciąć je? AnsiString pewnie ma jakieś metody do ucinania czy coś.

@adf88: Ten wątek ma dwa lata, LOSMARCELOS na bank nie zauważy :>

0

Dobra, zrobilem to po nie wiem jakiemu, ale dziala, wyglada to tak:

void __fastcall TForm1::Button2Click(TObject *Sender)
{
TStringList* lista = new TStringList ;
 lista -> LoadFromFile("pass.txt");
 Edit2->Text = lista->Text;
 Edit2->Text = Edit2->Text.Delete(Text.Length()+1,Text.Length()+1);
 delete lista ;
}

Istna rzezba w gownie.

Dzieki za pomoc ;)

A tak z drugiej beczki. Mozna to zapisac inaczej? Krocej? :-|

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