Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# Pole textových řetězců

Ahoj, mám dotaz.
Tvořím simulátor CNC kódu a chtěl bych vypisovat
některé komentáře např. nástroj a operaci. Požadované
komentáře mají vždy stejnou pozici v řádku tak sem řádek
rozdělil Splitem a nechal vypisovat požadované pozice ale
některé řádky CNC kódu jsou kratší než řádky než řádky z
kterých vypisuji komentář a tam mi vyskakuje chyba.
Zkoušel sen podmínku rozdelenýŘádek[2] != null ale
to nefunguje. Přikládám testovací projekt.

string[] poleŘádků = richTextBox1.Lines;
for (int i = 0; i <= poleŘádků.Length - 2; i++)
{
string[] rozdělenýŘádek = poleŘádků[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

try
{
if (rozdělenýŘádek[2] == "OPERACE:" && rozdělenýŘádek[2] != null)
{
listBox1.Items.Add(rozdělenýŘádek[3]);
}
else if (rozdělenýŘádek[2] == "NASTROJ:" && rozdělenýŘádek[2] != null)
{
listBox1.Items.Add(rozdělenýŘádek[3]);
listBox1.Items.Add("**************************************************");
}
}
catch
{
MessageBox.Show("Špatně načtený řádek\n" + poleŘádků[i], "Chyba");
}
}

Předmět Autor Datum
Potřebuješ tam kontrolovat rozdělenýŘádek.Length
Wikan 12.06.2021 09:04
Wikan
A jak to mam napsat zkoušel sem rozdělenýŘádek.Length != null a to mi nefunguje
Špelec 12.06.2021 09:20
Špelec
To se taky neporovnává s null ale s konkrétním číslem.
Wikan 12.06.2021 11:40
Wikan
Zkusil sem ještě !(rozdělenýŘádek.Length <2) to mi taky nešlo
Špelec 12.06.2021 09:33
Špelec
A kam jsi to dal?
Wikan 12.06.2021 11:40
Wikan
if (rozdělenýŘádek[2] == "OPERACE:" && !(rozdělenýŘádek.Length < 2))
Špelec 12.06.2021 11:43
Špelec
Takže si přečteš třetí prvek a pak zjišťuješ, jestli tam jsou alespoň dva. Asi už chápeš, kde je pro…
Wikan 12.06.2021 11:45
Wikan
Netuší kde je chyba prohodil sem to !(rozdělenýŘádek.Length < 2) && rozdělenýŘádek[2] == "OPERACE:"…
Špelec 12.06.2021 11:50
Špelec
Co znamená nejde? Pořád tam vidím ten problém, že kontroluješ délku na alespoň dva, ale pak čteš tře…
Wikan 12.06.2021 11:51
Wikan
Nevím jak to mam napsat nešla by ukázka
Špelec 12.06.2021 11:55
Špelec
if (pole.Length > 3 && pole[2] == "cosi") { list.Add(pole[3]); }
Wikan 12.06.2021 12:04
Wikan
Super funguje to dík.
Špelec 12.06.2021 12:07
Špelec
zkusil sem ještě if (!(rozdělenýŘádek.Length < 2)) { if (rozdělenýŘádek[2] == "OPERACE:") { listBox1…
Špelec 12.06.2021 12:04
Špelec
Pokud nenapíšeš, jaká přesně chyba, tak je taková informace k ničemu.
Wikan 12.06.2021 12:09
Wikan
Super funguje to dík. Příště to zkusím lip popsat. poslední
Špelec 12.06.2021 12:11
Špelec

zkusil sem ještě
if (!(rozdělenýŘádek.Length < 2))
{
if (rozdělenýŘádek[2] == "OPERACE:")
{
listBox1.Items.Add(rozdělenýŘádek[3]);
}
//else if (rozdělenýŘádek[2] == "NASTROJ:" && rozdělenýŘádek[2] != null)
//{
// listBox1.Items.Add(rozdělenýŘádek[3]);
// listBox1.Items.Add("**************************************************");
//}
//}
}
pořád mam chybu

Zpět do poradny Odpovědět na původní otázku Nahoru