Temat: Zawijanie wierszy

Witam,
Czy istnieje jakaś funkcja lub możliwość zawijania wierszy w ale z warunkiem nie dzielenia wyrazów tak aby w pierwszym wierszu wyświetlić np. 30znaków a w pozostałych np. 100znaków.

przykład:

test test test test test test
test test test test test test test test test test test test test test test test test test
test test test test test test test test test test test test test test test test test test
test test test test test test test test test test test test test test test test test test

Próbowałem użyć funkcji wyświetlającej fragment tekstu w pierwszym wierszu do 30znaków a w drugim od 31znaków ale taka metoda odpada ze względu na dzielenie wyrazu.
W starych programach dosowych używało się funkcji Split.

pozdrawiam
Darek
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Zawijanie wierszy

Gotowej opcji lub funkcji nie ma. Trzeba napisać własną formułę lub funkcję.

Na szybko stworzyłem podwaliny takiej formuły z zastosowaniem funkcji Split.

Formuła wycina 30 znaków bez dzielenia wyrazów.
Rozdzielam tekst na tablice słów i w pętli badam czy nie przekroczyliśmy podanego rozmiaru.



Local NumberVar size := 30;

StringVar array words := split(tabela.pole, ' ');

Local NumberVar i := 1;
Local StringVar result;

While len(result) < size Do
(
result := result + words [i] + ' ';

i := i + 1;
);

result



Jeszcze trzeba dopisać kawałek kodu do doklejania pozostałej części tekstu w kolejnej linii. Jeśli sobie nie poradzisz to później pokażę całościowe rozwiązanie.

Powodzenia!Ten post został edytowany przez Autora dnia 21.08.13 o godzinie 10:48

Temat: Zawijanie wierszy

Witam,
Bardzo dziękuję za odpowiedź.
Ta formuła działa, tylko w niektórych przypadkach wyświetla błąd o treści "Indeks dolny musi być liczbą z zakresu od 1 do rozmiarów tablicy" jeśli można to proszę ciąg dalszy, jestem początkującym użytkownikiem tego programu od niedawna, wcześniej używałem tylko programu dosowego i tam problemów nie miałem a tu jeszcze trochę czasu upłynie zanim to ogarnę.

Pozdrawiam
DarekTen post został edytowany przez Autora dnia 26.08.13 o godzinie 22:56
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Zawijanie wierszy

Tak, ta formula to dopiero poczatek i nalezy ja dopracowac. Chcialem ci pokazac idee.
Jak znajde czas to dokoncze :)

Temat: Zawijanie wierszy

Witam,
Czy jest możliwa pomoc w dalszej części.
Na niektórych wydrukach w/w kod zwraca informację "Indeks dolny musi być liczbą z zakresu od 1 do rozmiarów tablicy. " co może być przyczyną.

Pozdrawiam
Darek
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Zawijanie wierszy

Taki komunikat pojawia się w sytuacji, gdy próbujesz pobrać element z tablicy o indeksie, który wykracza poza jej zakres. Prawdopodobnie błąd pojawia się w tym miejscu: words[i] Pewnie trzeba poprawić warunek pętli.
Ale zanim to zrobisz sprawdź dokładnie jakie wartości przyjmuje zmienna i.

Temat: Zawijanie wierszy

Mam problem z rapotem cristalowym. chciałbym aby w dynamicznym polu po zlokalizowaniu danego znaku złamało linię i tu pytanie do ludzi bardziej obeznanych czy da radę coś takiego zrobić jeśli tak to czy mógłby ktoś zarzucić jakimś przykładem
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Zawijanie wierszy

Wystarczy dokleić znak enter w postaci kodu ascii za pomocą funkcji CHRW(n)

Przykład:


"Hello " + CHRW(13) + "World!"
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: Zawijanie wierszy

Inna metoda to zastosowanie... HTML.

1. W tekście z pola lub procedury składowanej formatujemy tekst za pomocą znaczników html, a w szczególności <BR> w miejscach gdzie ma być przedzielenie linii.


np. <html>Hello<br>World!</html>


2. Następnie w CR w opcjach formatowania pola tekstowego ustawiasz interpreter as html.

Obrazek


Zaletą tego rozwiązania jest to, że możesz wówczas formatować tekst, np. pogrubić <b>, kursywa <i> itp.

Ale niestety CR obsługuje tylko kilka podstawowych znaczników języka html, więc nie wszystko da się zrobić.

Więcej na ten temat pisałem tutaj:
http://www.goldenline.pl/grupy/Komputery_Internet/crys...

Następna dyskusja:

Zmiana wierszy na kolumy




Wyślij zaproszenie do