Evilmonster
Kilopat
- Katılım
- 23 Ağustos 2019
- Mesajlar
- 767
- Çözümler
- 26
Daha fazla
- Cinsiyet
- Erkek
- Meslek
- Yazılım Geliştiricisi
Öncelikle bir şeyden dolayı özür dilemek istiyorum, test yapmadan size çözüm sunduğum için birkaç yanlış yapmışım. Boşluk ile bölünce karakter karakter böldüğünden birden çok indis oluşuyor ve bazı indisler boş çıkıyormuş.
Bunun dışında ReadLines yerine ReadAllLines koydum ve böylece direkt olarak yazı dizisi olarak değer döndürdü.
[CODE lang="csharp" title="C#"]
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Metin Dosyaları|*.txt";
openFileDialog1.Title = "Bir koordinat dosyası seçin";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
string path = openFileDialog1.FileName;
string[] lines = File.ReadAllLines(path);
foreach(string line in lines)
{
string[] coords = line.Split(' ');
coords = coords.Distinct().ToArray();
listBox1.Items.Add(coords[0].Trim());
listBox2.Items.Add(coords[2].Trim());
listBox3.Items.Add(coords[3].Trim());
}
}
}[/CODE]
Kodun son hali bu.
Bu çokça olan boşlukları Distinct() fonksiyonu ile sildim. Bu fonskiyon, aynı olan değerleri silip tek değer bırakıyor. a a a b dizisini a b olarak yeniden yazıyor kısaca.
Böyle yapınca x boşluk y z dizesi oluşuyordu. Bunları da listeye ekledim.
Bunun dışında ReadLines yerine ReadAllLines koydum ve böylece direkt olarak yazı dizisi olarak değer döndürdü.
[CODE lang="csharp" title="C#"]
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "Metin Dosyaları|*.txt";
openFileDialog1.Title = "Bir koordinat dosyası seçin";
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
string path = openFileDialog1.FileName;
string[] lines = File.ReadAllLines(path);
foreach(string line in lines)
{
string[] coords = line.Split(' ');
coords = coords.Distinct().ToArray();
listBox1.Items.Add(coords[0].Trim());
listBox2.Items.Add(coords[2].Trim());
listBox3.Items.Add(coords[3].Trim());
}
}
}[/CODE]
Kodun son hali bu.
Bu çokça olan boşlukları Distinct() fonksiyonu ile sildim. Bu fonskiyon, aynı olan değerleri silip tek değer bırakıyor. a a a b dizisini a b olarak yeniden yazıyor kısaca.
Böyle yapınca x boşluk y z dizesi oluşuyordu. Bunları da listeye ekledim.