textBox.Text to array[]

textBox.Text to array[]
JF
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:20
0

Witam!
Mam textBox1.Text i chcę wiersze tekstu z tego obiektu zapisać w tablicy jednowymiarowej string[] tabStr - jak to zrobić?
Dzięki za pomoc.

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 6 godzin
NE
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:2
0

Jeśli to zwykły łańcuch, to podziel go przez separator

Kopiuj
string[] linie = text.Split(Environment.NewLine.ToCharArray());

Może jest jakaś gotowa metoda? Powinna być, ale może i nie być

somekind
To chyba nie zrobi tego, co trzeba...
NE
Mówisz? Patrzę i cały czas wydaje mnie się to w porządku. A co zrobi? Nie mogę teraz sprawdzić :P
NE
Ale z Ciebie pinokio...
somekind
Masz jakiś problem?
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 19 godzin
  • Lokalizacja:Wrocław
0

A po co utrudniać sobie życie korzystając z .Text?
string tabStr = textBox1.Lines

Zobacz pozostałe 20 komentarzy
somekind
Czemu jakaś operacja miałaby być właściwością? :| Chyba to nie ja powinienem się położyć. A od rana wrócić do książek.
NE
Niech TextBox przechowuje nawet w bajtach - implementacja implementacją. Niee, jak najbardziej mogą przechowywać logikę jakąś tam, tylko rozchodzi się o to, że to nie należy do właściwości tego obiektu jakim jest pojemnik tekstu
somekind
Nie zalicza się do właściwości, bo Ty tak twierdzisz?
NE
A sorry, zajrzałem w dokumentację i jednak zalicza się xD Nie było tematu : D
msm
@Azarien @Netkam: ale wiecie że textbox.Text to nie jest "proste odwołanie się do pola klasy"? textbox.Text zazwyczaj skończy się delegacją do WinAPI z interop marshalingiem i PInvoke. W 99.5% przypadków różnica między narzutem splitowania napisu a PInvoke będzie się miała jak świeczka do płonącej serwerowni.
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:dzień
  • Postów:5138
0

**Patrz post niżej - john_klamka
**

Hej, nie jestem pewien, ale na pewno chcesz użyć textBox zamiast np. richTextBox jeżeli chcesz działać na linijkach?

title

Możesz to zrobić na kilka sposobów, ja wrzucę dwa i od razu zaznaczę, że nie jestem expertem.

Tablica + for:

Kopiuj
            int lines_count = richTextBox1.Lines.Length;
            string[] lines_array = new string[lines_count];
            for (int i = 0; i < lines_count; i++)
            {
                lines_array[i] = richTextBox1.Lines.ElementAt(i);
            }

Lista + foreach:

Kopiuj
            List<string> lista = new List<string>();
            foreach (string lines in richTextBox1.Lines)
            {
                lista.Add(lines);
            }

title

edytowany 10x, ostatnio: WeiXiao
john_klamka
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 5 lat
  • Postów:177
0
WeiXiao napisał(a):

Hej, nie jestem pewien, ale na pewno chcesz użyć textBox zamiast np. richTextBox jeżeli chcesz działać na linijkach?

Możesz to zrobić na kilka sposobów, ja wrzucę dwa i od razu zaznaczę, że nie jestem expertem.

To rozwiązanie jest redundantne :D

przecież wystarczy:

Kopiuj
var lines_array = textBox1.Lines.ToList();
somekind
Podoba mi się nazwa lines_array dla zmiennej przechowującej listę.
john_klamka
i tak lepiej niż po węgiersku
JF
  • Rejestracja:około 14 lat
  • Ostatnio:ponad 3 lata
  • Postów:20
0

Dziękuję wszystkim za udzielone mi informacje!

Zrobiłem coś takiego w swoim programie do przeglądania właściwość komputerów zarejestrowanych w AD:

        var lista_koncowa = "";
        var lines_array = textBox1.Lines.ToList();
        for (int i = 0; i < lines_array.Count(); i++)
        {
            if (lines_array[i]!="")
            {               
               lista_koncowa= lista_koncowa + pAD.kompAD(lines_array[i]) + '\r' + '\n';
            }
        }

Zamiast tablicy użyłem listy z tym samym skutkiem, chodziło o przekazanie parametru do wywołania metody pAD.kompAD(string name) w pętli iteracyjnej.
Mam wrażenie, że kiedy 6 lat temu dużo trenowałem C#, to obiekty string i textBox.Text dawało się bez problemu załadować do tablicy array - chociaż, trochę czasu minęło i mogłem zapomnieć?
Teraz szukałem po Internecie i nic nie mogłem na ten temat znaleźć, przejścia z textBox.Text do array[n].
Jeszcze raz dziękuję za informacje i symatyczną atmosferę w wątku :-)

edytowany 1x, ostatnio: JanF

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.