CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

dział ogólny

Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postprzez lukagrom » wtorek, 22 maja 2018, 17:29

Dotychczas korzystam z metody ListBox->Items->Add(UnicodeString), a ona w przypadku wypisywania danych z pętli, każdą kolejną wartość wypsiuje w kolejnym wierszu. Chciałbym na przykład wypisać kolejne cyfry od 1 do 10 w jednym wierszu w odległości jednej spacji, czyli jak w C dla terminala/konsoli:
KOD cpp:     UKRYJ  
for(i=0;i<10;i++)
 {
  printf("%d ",i+1);
 }
 

Robiąc mniej więcej to samo tradycyjną metodą dla komponentu ListBox:
KOD cpp:     UKRYJ  
 for(i=0;i<10;i++)
  ListBox1->Items->Add(IntToStr(i+1));
 

kolejne cyfry, wypisują się w następnych linijkach. Czy ten komponent ma jakąs inną metodę, która pozwoli my wypisywać dane w jenym wierszu?
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 37
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 10.1 Starter
Gadu Gadu: 0
    Windows VistaChrome

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postprzez polymorphism » środa, 23 maja 2018, 10:43

Użyj strumienia std::ostringstream, dodaj do niego wartości pooddzielane spacją i na koniec daj:
KOD cpp:     UKRYJ  
ListBox1->Items->Add(oss.str().c_str());
C++ Reference - opis wszystkich klas STL-a i funkcji C.

Za ten post autor polymorphism otrzymał podziękowanie od:
lukagrom
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postprzez lukagrom » środa, 23 maja 2018, 12:28

O to chodzilo, dzięki.
KOD cpp:     UKRYJ  
 std::ostringstream osstream;
 int i;
 for(i=0;i<10;i++)
  osstream<<i+1<<" ";
 ListBox1->Items->Add(osstream.str().c_str());

 
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 37
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 10.1 Starter
Gadu Gadu: 0
    Windows VistaChrome

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postprzez polymorphism » środa, 23 maja 2018, 12:33

Dlaczego i definiujesz poza pętlą?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postprzez lukagrom » środa, 23 maja 2018, 13:27

Takie przyzwyczajenie jeszcze z Turbo Pascala, gdzie wszystkie zmienne, były definiowane w jednej początkowej sekcji. Odnośnie ostringstream, dobrze, że można to tablicować, dzięki czemu można regulować tekst na różną ilość wierszy .
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 37
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 10.1 Starter
Gadu Gadu: 0
    Windows VistaChrome

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postprzez polymorphism » środa, 23 maja 2018, 14:23

Chyba nie rozumiem, o co chodzi z tym tablicowaniem.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postprzez lukagrom » środa, 23 maja 2018, 14:43

Idea, żeby wypluć "skopiowany" tekst nie w jednej linijce, a w kilku. Zresztą prosty, "autopromocyjny" przyklad, jak zawartość wypełnionego StringGrida o polach 10 *10, przetransportować do ListBoxa w tym samym formacie, a nie w jednej linijce jak powyżej : - https://l077.blogspot.com/
Avatar użytkownika
lukagrom
Bladawiec
Bladawiec
 
Posty: 37
Dołączył(a): wtorek, 1 stycznia 2013, 14:54
Podziękował : 6
Otrzymał podziękowań: 0
System operacyjny: Windows Vista
Kompilator: C++ Builder 10.1 Starter
Gadu Gadu: 0
    Windows VistaChrome

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postprzez polymorphism » środa, 23 maja 2018, 14:56

Ok, rozumiem.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows 7Firefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 43 gości

cron