none
iç içe for sorunu RRS feed

  • Soru

  •  

    merhaba excellden dataları datagridview e çekiyorum sonra ürün kodu ve adede göre bir klasörden öteki klasöre ürün kodu ve adedine göre resim kopyalıyorum ama 1inci for gayet iyi bir şekilde çalışıyor ama ikinci for tam dönmüyor örneğin 3 geliyor for'un içine ama 1 kere dönüyor 25 gelen var ama yine 2 kere dönüyor sizce gözden kaçırdığım şey nedir?

    for (int i = 0; i <= dataGridView1.RowCount; i++)
                {

                        if (dataGridView1.Rows[i].Cells[0].Value != null && dataGridView1.Rows[i].Cells[1].Value != null)
                        {
                            string degisken = dataGridView1.Rows[i].Cells[0].Value.ToString();
                            string degisken1 = dataGridView1.Rows[i].Cells[1].Value.ToString();           

                            Convert.ToInt32(degisken1);
                            degisken = degisken + ".jpg";

                            for (int j = 1; j <= degisken1.Length; j++)
                            {
                                string degisken2 = degisken + j + ".jpg";
                                string dosya_yolu = System.IO.Path.Combine(source, degisken);
                                string hedef = System.IO.Path.Combine(sourcecopy, degisken2);
                                System.IO.File.Copy(dosya_yolu, hedef, true);

                   
    20 Kasım 2019 Çarşamba 11:50

Tüm Yanıtlar

  • for(int j=1; j <= degisken1.Length ...

    demissiniz. degisken1 bir string, .Length onun karakter sayisi. Gercekten istediğiniz o mu?



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    20 Kasım 2019 Çarşamba 13:09
    Yanıtlayıcı
  • aslında o datagridviewden string çekip Convert.ToInt32(degisken1); yapıyorum for a geldiğinde int olarak geliyor ama karakter sayısına göre hareket ediyor mesela 25 geliyor degisken1 ama 2 kere dönüyor
    20 Kasım 2019 Çarşamba 13:14
  • aslında o datagridviewden string çekip Convert.ToInt32(degisken1); yapıyorum for a geldiğinde int olarak geliyor ama karakter sayısına göre hareket ediyor mesela 25 geliyor degisken1 ama 2 kere dönüyor

    string olarak tanımlanmış değişkeni Int32'ye çevirerek nasıl bir sonuca ulaşıyorsunuzki ?

    Örnek dataGridView1.Rows[i].Cells[1].Value.ToString(); koduyla i'inci satırdaki 1'inci hücredeki  "Mustafa" adlı değişken geldi ve  değisken1'in içine tanımlandı.

    Siz Int32'ye çevirince ne oluyor ? Int32'ye çevirmeye çalıştığınızda zaten "Giriş dizesi doğru biçimde değildi." hatası verir...

    @CetinBasoz'ün dediği gibi siz degisken1'in karakter sayısı kadar for döngüsü döndürmek istediğinize emin misiniz ? Yoksa degisken1 değişkeninin içine gelen değişkenler kadar for döngüsü istiyor olmayasınız ?

    20 Kasım 2019 Çarşamba 13:52
  • çok teşekkür ederim çözdüm şu an istediğim gibi çalışıyor parse işlemi yaptım şu an aktif olarak kullanmaya başladım 
    20 Kasım 2019 Çarşamba 13:56
  • aslında o datagridviewden string çekip Convert.ToInt32(degisken1); yapıyorum for a geldiğinde int olarak geliyor ama karakter sayısına göre hareket ediyor mesela 25 geliyor degisken1 ama 2 kere dönüyor

    Convert yaptiginiz satir bosta, hiçbir ise yaramıyor, silseniz de sonuc ayni. Belki de demek istediğiniz bu:

    var say = Convert.ToInt32(degisken1);

                            for (int j = 1; j <= say; j++)

    Not: Convert yerine int.TryParse kullanmanız daha iyi olacaktır.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    20 Kasım 2019 Çarşamba 14:36
    Yanıtlayıcı