Bu tür verileri doğru şekilde ayırarak her bir bilgiyi ayrı sütunlara yerleştirmek için birkaç adım izlemeniz gerekebilir. İhtiyacınız olan şey, metin dosyasındaki öğrenci bilgilerini ve sınav cevaplarını doğru şekilde ayrıştırmak.
Adımlar:
Metni Satırlara Ayırma:
İlk olarak, metni satırlara ayırmanız gerekiyor. Her satırda bir öğrenci olduğunu varsayıyoruz.
Her Satırı Parçalama (Split):
Öğrencilerin bilgileri arasında belirli bir desen var (örneğin, TC numarası, adı soyadı, sınıfı, ve ardından sınav cevapları). Bu desenleri kullanarak her satırı parçalara ayırabilirsiniz.
Veriyi Çözümleme:
Her bir parçayı doğru sütuna yerleştirmeniz gerekiyor: Öğrencinin numarası, adı soyadı, sınıfı ve sınav cevapları.
Aşağıda C# dilinde bir örnek çözüm önerisi bulunmaktadır:
C# Kod Örneği:
`csharp
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
public class Ogrenci
{
public string OgrenciNo { get; set; }
public string AdSoyad { get; set; }
public string Sinif { get; set; }
public string Turkce { get; set; }
public string Sosyal { get; set; }
public string Din { get; set; }
public string Ingilizce { get; set; }
}
public void ParseTextFileAndFillGrid(string filePath, DataGridView dataGridView)
{
var ogrenciler = new List<Ogrenci>();
try
{
string[] lines = File.ReadAllLines(filePath); // Dosyadaki tüm satırları alıyoruz
foreach (string line in lines)
{
// Her satırda öğrencinin bilgileri arasındaki boşlukları ayırıyoruz
string[] parts = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
if (parts.Length > 7) // Bilgilerin yeterli olduğundan emin olalım
{
// Öğrencinin bilgilerini ayıklıyoruz
var ogrenci = new Ogrenci
{
OgrenciNo = parts[0],
AdSoyad = parts[1] + " " + parts[2], // Ad soyadı birleştiriyoruz
Sinif = parts[3],
Turkce = parts[4], // Türkçe sınavı cevabı
Sosyal = parts[5], // Sosyal bilgiler sınavı cevabı
Din = parts[6], // Din sınavı cevabı
Ingilizce = parts[7] // İngilizce sınavı cevabı
};
ogrenciler.Add(ogrenci); // Listeye ekliyoruz
}
}
// DataGridView'e veriyi ekliyoruz
dataGridView.DataSource = ogrenciler.ToList();
}
catch (Exception ex)
{
MessageBox.Show("Hata oluştu: " + ex.Message);
}
}
`
Açıklamalar:
Dosyayı Okuma:
File.ReadAllLines(filePath) komutu ile metin dosyasındaki tüm satırları alıyoruz.
Satırları Parçalama:
line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries) komutu ile her satırı boşluklara göre ayırıyoruz. Bu, her öğrencinin bilgilerini (numara, ad soyad, sınıf, sınav cevapları) ayrı parçalara böler.
Öğrenci Nesnesi Oluşturma:
Her bir satır için bir Ogrenci nesnesi oluşturup gerekli bilgileri bu nesnede saklıyoruz.
DataGridView'e Veriyi Aktarma:
Elde edilen öğrenci listesine DataGridView.DataSource üzerinden veri bağlayarak ekliyoruz.
Çıktı:
Metin dosyasındaki öğrenci bilgileri aşağıdaki gibi görünecektir:
| Öğrenci No | Ad Soyad | Sınıf | Türkçe | Sosyal | Din | İngilizce |
|------------|-----------------|-------|--------|--------|-----|-----------|
| 00079 | LEVENT ARSLANI | 8DK | ADBBC | DDC | AAB | ABADBAAB |
| 00371 | ESMA ÇİÇEK | 8FE | BACC | ADBDC | AAB | ABACBDAC |
Dikkat Edilmesi Gerekenler:
Veri Yapısının Düzenlenmesi:
Verinin yapısı örneğin "Türkçe, Sosyal, Din, İngilizce" cevapları ve öğrenci bilgilerini ayıran boşluklar düzenli değilse, başka bir ayırıcı (örneğin virgül veya özel bir karakter) kullanmanız gerekebilir.
Hatalar ve Eksik Veriler:
Her satırda gerekli tüm bilgilerin olup olmadığını kontrol etmek önemli. Eğer eksik veri varsa, hataları yakalayarak kullanıcıya bildirebilirsiniz.
Bu çözüm, metin dosyasındaki verileri uygun şekilde ayrıştırarak DataGridView veya ListView gibi bileşenlerde gösterebilmenizi sağlar.