• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Permütasyon Kodunu Diziye Aktarma

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

aliandic

Yeni Üye
Kullanıcı Bilgileri
Katılım
12 Kas 2022
Mesajlar
24
Aldığı beğeni
0
Excel Versiyonu
Office 2021 TR
Konuyu Başlatan
halily Merhabalar hocam ben bir konu açmışdım permütasyon ile ilgili A sütunu bitince B sütununa B bitince C ye geçsin diye konu açmışdım sizde bana makro kodu vermişdiniz çok teşekkür ederim onun için fakat dizine aktarınca daha hızlı olduğunu söylemişdiniz dizine aktarma işini nasıl yapıcam acaba ?

 
dizi çok büyük olduğunda hata verdiği için diziyi sütun sütun ayırmaya çalıştım
dilerim işinize yarar
Not: tek yaptığım üretilen sonucu sütunlara bölmek, permütasyon/kombinasyon koduna dokunmadım
başlat düğmesinin kodu
CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
OutProc yordamının kodu
CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Bu şekilde işinize yararsa kullanabilirsiniz. Visual Studio kullanarak vb.net yazılım dilinde geliştirdiğim bir program.
 

Ekli dosyalar

  • permkomb.zip
    15.1 KB · Gösterim: 6
Bu şekilde işinize yararsa kullanabilirsiniz. Visual Studio kullanarak vb.net yazılım dilinde geliştirdiğim bir program.
hocam sizin yaptığınızı denedim çok iyi düşünülmüş sayaç felanda var fakat 400 karakterli permütasyon oluşturucam her seferinde hata veriyor bazen 10 karakterli oluşturucam hata veriyor
 
hocam out of memory hatası veriyor ve burayı gösteriyor Sheet1.Range(Cells(1, Stn), Cells(1048576, Stn)) = dz
 
Hangi değerleri girdiğinizde bu hatayı veriyor?
Ben de vermedi.
0000111122223333444455556666777788889999,,,,++++----****////....::::ççççöööömmmmnnnnbbbbvvvvccccxxxxzzzz<<<<||||>>>>aaaassssddddffffgggghhhhjjjjkkkkllllşşşşiiii,,,,´´´´````;;;;üüüüğğğğppppooooııııuuuuyyyyttttrrrreeeewwwwqqqq@@@@€€€€₺₺₺₺¨¨¨¨~~~~ææææßßßßZZZZXXXXCCCCVVVVBBBBNNNNMMMMÖÖÖÖÇÇÇÇİİİİŞŞŞŞLLLLKKKKJJJJHHHHGGGGFFFFDDDDSSSSAAAAQQQQWWWWEEEERRRRTTTTYYYYUUUUIIIIOOOOPPPPĞĞĞĞÜÜÜÜ""""éééé!!!!''''^^^^%%%%&&&&(((())))====????____££££####$$$$½½½½{{{{[[[[]]]]}}}}\\\\ bu karakterlerin 4 lü permütasyonunu yapmaya kalkışınca hatayı veriyor
 
Permütasyon formülünü paylaşabilir misiniz?
Bilgisayar olmadığından kodu inceleme imkanım yok ama sanki kodunuz tekrarsız permutasyonu hesapliyordu
Bir de
1 - hata verdiğinde stn değeri kaçı gösteriyor
2 -
Sheet1.Range(Cells(1, Stn), Cells(1048576, Stn)) = dz
bu kod yanılmıyorsam 2 yerde vardı hangi moduldeki kod
 
hocam sizin yaptığınızı denedim çok iyi düşünülmüş sayaç felanda var fakat 400 karakterli permütasyon oluşturucam her seferinde hata veriyor bazen 10 karakterli oluşturucam hata veriyor
Bende 1 gb ram olduğu için çalışmıyor belki sizde çalışır. Bilgisayarı kullanılamaz hale getirdiği için pcyi kapatmam gerekti. Herşeyi kapatıp öyle deneyin. Eğer çalışmadıysa yapabileceğim birşey yok.
 

Ekli dosyalar

  • permkomb.zip
    16.9 KB · Gösterim: 2
Son düzenleme:
464 'ün 4lu permutasyonu
464*463*462*461=45.755.349.024
Her sutunda 1.048.576 satır olduğundan gerekli olan sütun sayısı
45755349024/1048576=43.635
Yani en az 43.635 sütun gerekiyor oysa excelde en fazla 16.384 sütun var yani sonuç bir excel sayfasına sığmadığı için hata veriyor olabilir
 
Permütasyon formülünü paylaşabilir misiniz?
Bilgisayar olmadığından kodu inceleme imkanım yok ama sanki kodunuz tekrarsız permutasyonu hesapliyordu
Bir de
1 - hata verdiğinde stn değeri kaçı gösteriyor
2 -
bu kod yanılmıyorsam 2 yerde vardı hangi moduldeki kod
Outproc kısmıda
464 'ün 4lu permutasyonu
464*463*462*461=45.755.349.024
Her sutunda 1.048.576 satır olduğundan gerekli olan sütun sayısı
45755349024/1048576=43.635
Yani en az 43.635 sütun gerekiyor oysa excelde en fazla 16.384 sütun var yani sonuç bir excel sayfasına sığmadığı için hata veriyor olabilir
peki bu permütasyonu ayrı ayrı excel sayfalarına aktarma yapabilirmi ? veya txt sayfasına ?
 
OutProc kodu aşağıdaki gibi olacak
CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
CommandButton1_Click kodu da aşağıdaki gibi düzenlenmeli
CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
not: 42 ye 4lü permütasyonu denedim 41 sn kadar sürdü
400 küsürlü olanı denemedim saatler sürebilir
 
Merakımdan soruyorum son eklediğim dosyaya bakabildiniz mi? Bu arada dosyanızı xml olarak daha hızlı kaydedersiniz.
 
belirtmeyi unutmuşum her zamanki gibi FileToCreate de cnt gibi tanımlanmalı
Public FileToCreate As Object satırı da eklenmeliydi
 
belirtmeyi unutmuşum her zamanki gibi FileToCreate de cnt gibi tanımlanmalı
Public FileToCreate As Object satırı da eklenmeliydi
hocam bu seferde ınvalid procedure call or argument diyor ve hata olarak burayı gösteriyor 400 karakter girdiğimde
Sub OutProc(outStr As String)
' cnt = cnt + 1
FileToCreate.Write outStr & vbNewLine
End Sub
 
hocam bu seferde ınvalid procedure call or argument diyor ve hata olarak burayı gösteriyor 400 karakter girdiğimde
Sub OutProc(outStr As String)
' cnt = cnt + 1
FileToCreate.Write outStr & vbNewLine
End Sub
sorunun çözümünü buldum ₺ şu işareti ekleyince yapıyomuş şuan deniyorum 460 karakterin 4 lü permütasyonunu yapıyor
 
aşağıdaki yöntem daha hızlı isterseniz kodları aşağıdaki gibi düzenleyerek deneyin
CommandButton1_Click yordamının kodu
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
OutProc yordamının kodu
CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
modül başına eklenecek tanımlama
Public TextFile As Integer

eğer OutProc yordamının koduna Cnt = Cnt + 1 eklerseniz permutasyon sayısı da gösterilir ama Cnt, double olarak tanımlanmalı
CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Son düzenleme:
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Geri
Üst