Ĺadny brzuch
Piszę w builderze C++ taką funkcę, która stwarza w pętli tablicę i wyświetla ja w obiekcie Memo.
Zanim wyświetlę ja w Memo mam zmienną AnsiString i do niej wpisuje potrzebne rzeczy. QW pewnym momencie potrzebuje zrobić backspace po prostu skasowac ostatni znak który pojawia mi sie po obieu pętli. Czy możecie mi powiedzieć jak to zrobić bo wpisując \b nie działa.
http://www.cplusplus...tring/copy.html
kopiujesz tamten string z ''n (Number of characters to be copied)" równym długości tego stringa-1 :)
Ostatni znak powiadasz:String x = "costam1234x"; x[x.Length()]=0;
albo
String x = "costam1234x"; x.SetLength(x.Length()-1);
albo
String x = "costam1234x"; x.Delete(x.Length(),1);
albo
String x = "costam1234x"; x = x.SubString(0,x.Length()-1);
Użytkownik Nodnol edytował ten post 02 lipiec 2007, 16:52
A nie ma jakiejś metody znanej z czystego C tzn zastosować nak przy pisaniu na klawiaturze Backspace. Tu chodzi też o to że ten ostatni znak do usunięcia pojawia sie po każdym przebiegu wewnętrznej pętli, a jest jeszcze zewnętrzna i moze to mi trochę kompliować. A czy można użyć funkcji CHAR()
ten ostatni znak do usunięcia pojawia sie po każdym przebiegu wewnętrznej pętli,
Sam się pojawia? :)
Może lepiej zlikwidować przyczynę?
W jaki sposób przypisujesz łańcuch znaków do tej zmiennej?
A jeżeli nie można z jakiegoś powodu, to usuwaj znak po każdej pętli, np. sposobem Cyrkla. Nie powinno to spowolnić programu, więc czemu nie chcesz tak robić? :)
Aby wkleic kod to muszę Wam opisać co ma robić ta funkcja.
Otóż mam dwuwymiarową tablicę składającą się 91 wierszy i 5 kolumn. Kazdy taki wiersz to wzór czcionki ale pionowy, a funkcja ma zamienić na postać poziomą ale na maksymalnie pięć pozycji, reszta z bajtu przeskakuje na następny wiersz.
Wklejam ten fragment, który stwarza problem, bo pojawia sie za duzo przecinków przy tworzeniu wyjsciowej tablicy dwuwymiarowej.
wynik="byte Fonty[][5]={\n"; for(pozycja=0;pozycja<91;pozycja++) { wynik+="{ "; for(x=0;x<5;x++)wynik+=IntToStr(Fonty[pozycja][x])+" , "; wynik+="},\n"; }
String wynik="byte Fonty[][5]={\n"; for(int pozycja=0;pozycja<91;pozycja++) { wynik+="{ "; for(int x=0;x<5;x++) { wynik+=IntToStr(Fonty[pozycja][x]); x<4?wynik=wynik+=" , ":wynik; } pozycja<90?wynik+="},\n":wynik+="}"; }
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Zanim wyświetlę ja w Memo mam zmienną AnsiString i do niej wpisuje potrzebne rzeczy. QW pewnym momencie potrzebuje zrobić backspace po prostu skasowac ostatni znak który pojawia mi sie po obieu pętli. Czy możecie mi powiedzieć jak to zrobić bo wpisując \b nie działa.
http://www.cplusplus...tring/copy.html
kopiujesz tamten string z ''n (Number of characters to be copied)" równym długości tego stringa-1 :)
Ostatni znak powiadasz:String x = "costam1234x"; x[x.Length()]=0;
albo
String x = "costam1234x"; x.SetLength(x.Length()-1);
albo
String x = "costam1234x"; x.Delete(x.Length(),1);
albo
String x = "costam1234x"; x = x.SubString(0,x.Length()-1);
Użytkownik Nodnol edytował ten post 02 lipiec 2007, 16:52
A nie ma jakiejś metody znanej z czystego C tzn zastosować nak przy pisaniu na klawiaturze Backspace. Tu chodzi też o to że ten ostatni znak do usunięcia pojawia sie po każdym przebiegu wewnętrznej pętli, a jest jeszcze zewnętrzna i moze to mi trochę kompliować. A czy można użyć funkcji CHAR()
ten ostatni znak do usunięcia pojawia sie po każdym przebiegu wewnętrznej pętli,
Sam się pojawia? :)
Może lepiej zlikwidować przyczynę?
W jaki sposób przypisujesz łańcuch znaków do tej zmiennej?
A jeżeli nie można z jakiegoś powodu, to usuwaj znak po każdej pętli, np. sposobem Cyrkla. Nie powinno to spowolnić programu, więc czemu nie chcesz tak robić? :)
Aby wkleic kod to muszę Wam opisać co ma robić ta funkcja.
Otóż mam dwuwymiarową tablicę składającą się 91 wierszy i 5 kolumn. Kazdy taki wiersz to wzór czcionki ale pionowy, a funkcja ma zamienić na postać poziomą ale na maksymalnie pięć pozycji, reszta z bajtu przeskakuje na następny wiersz.
Wklejam ten fragment, który stwarza problem, bo pojawia sie za duzo przecinków przy tworzeniu wyjsciowej tablicy dwuwymiarowej.
wynik="byte Fonty[][5]={\n"; for(pozycja=0;pozycja<91;pozycja++) { wynik+="{ "; for(x=0;x<5;x++)wynik+=IntToStr(Fonty[pozycja][x])+" , "; wynik+="},\n"; }
String wynik="byte Fonty[][5]={\n"; for(int pozycja=0;pozycja<91;pozycja++) { wynik+="{ "; for(int x=0;x<5;x++) { wynik+=IntToStr(Fonty[pozycja][x]); x<4?wynik=wynik+=" , ":wynik; } pozycja<90?wynik+="},\n":wynik+="}"; }