Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

symonides

AnsiString i string w Builderze

Rekomendowane odpowiedzi

Witam,

Mam taki problem: chce wyswietlac zawartosc pliku tekstowego za pomoca komponentu Memo, a on przyjmuje tylko AnsiString, natomiast odczytujac plik standardowo za pomoca ifstream i getline dostaje typ string czy istnieje jakis sposob konwersji string na AnsiString? (rzutowanie nie dziala). Lub tez moze inaczej podejsc do kwestii odczytwania pliku??

Pozdrawiam :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Komponent memo miał jakąś metodę do odczytywania plików tekstowych. Nie musisz się bawić w żadne konwersje - wywołujesz metodę z plikiem jako parametr i z głowy.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ok moze troche niejasno to sformulowalem, nie chodzi mi o to zeby wyswietlac cala zawartosc pliku tylko po jakiejs tam obrobce, wyszukiwanie ciagow znakow itd, no i problem jest taki ze wszystko by dzialalo tylko ze ifstream daje mi string'i zamiast AnsiStringow i nie wiem jak to ruszyc :(

Ale i tak dzieki za sugestie :)

Moze ktos ma jakis inny pomysl?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie mam teraz Buildera pod ręką i nie mam jak sprawdzić. Nie ma żadnej metody "wyświetlania" stringu w Memo? Niemożliwe! To musi się dać "zrobić" :-)

 

po edycji

Wynik przekształceń zapisz w pliku a potem "załaduj" do pola Memo

 

[Edytowane: 11/3/2004 przez mieszek]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dobra mysl! hehe tylko ze troche naokolo :) jutro poszukam dokladniej ale wydaje mi sie ze ten komponenet jest tylko dla tych AnsiStringow :)

Pozdrawiam!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tak, ale AnsiString też dysponuje odpowiednią metodą do "pobierania" stringów. Coś kiedyś się tym bawiłem.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

string - pole 0 = dlugosc stringa, pola 1 do pole okreslone przez dlugosc = char

ansistring - pole 0 do pole n = char, pole n + 1 = terminator ( w c)

powinna byc odpowiednia metoda do konwersji strtoansi, a jak nie, to jest jeszcze sklejanie

a wlasnie PChar jest w Delphi, moze tutaj tez jest ? To konwertuje do ansi wszystkie stringi :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Hej,

Wiem juz jak skonwertowac AnsiString do string (metoda klasy AnsiString), niestety nie wiem jak zrobic to w druga strone. Tym gorzej dla mnie ze moja wesja Buildera C++ dziwnym trafem nie ma helpa :) hehehe chyba poskarze sie dystrybutorowi (eMule) :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jak nie zapomnę to jutro po objedzie sprawdzę i podeślę.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli problemem jest tylko załadowanie tekstu z pliku to w Delphi jest opcja:

 

Memo.LoadFromFile('nazwapliku');

 

W C++ pewnie będzie to wyglądać:

 

Memo->LoadFromFile('nazwapliku'); albo podobnie.

 

Ja bym obrabiał tekst już po załadowaniu, ale jeszcze przed wyświetleniem.

Pozdro

 

[Edytowane: 12/3/2004 przez JaBoliQue]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

->wiegul dzieki za link'a, ale tam kurcze nadal nie ma jak tego cholernego stringa do AnsiStringa przerobic.... wrrr sam tez troche szukalem a poniewaz nie znalazlem zwrocilem sie do Was :)

 

->JaBoliQue tak tekst mozna wrzucic to prawda ale ja chce pobierac po jednej linii, cos tam z nia robic i wyrzucac to do Memo, na tym ten problem moj caly polega...

No i jeszcze na tym ze np z ifstream niemozna bezposrednio do AnsiString wrzucac, chyba ze ktos zna jakas inna metode odczytywania plikow...

 

Pozdrawiam :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

"Możliwosci klasy AnsiString są dość spore. Przeciążony konstruktor klasy umożliwia utworzenie łańcucha bezposrednio z wartości typu char, char*, int, lub double"

 

s="ala ma kota" i z główki.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Hejka!

Oglaszam wszem i wobec iz zrobielm to co mowilem i co bylo moim problem :)

Wiec ku pamieci i dla potomnych:

string wiersz;

String AnsiWiersz;

OpenDialog1->Filter="Omicron Parameter Files(*.par)|*.par|All Files (*.*)|*.*";

if (OpenDialog1->Execute()){

ifstream in(OpenDialog1->FileName.c_str());

while(getline(in,wiersz)){

AnsiWiersz=AnsiString(wiersz.begin());

Memo1->Lines->Add(AnsiWiersz);

}

}

 

ten kawalek wyswietla zawartosc pliku linia po lini w Memo1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...