Sıralı Numara Üretmek
-
aşağıda yazan kod holyone desteği ile oluşturuldu amacını anlatayı;
c:\data klasörünü tarıyor (*.txt) içerisinde benim elimde olan numaralarım varsa onları sonrada numaraların karşısında bazı yazılar var onlarıda içeriyorsa yeni numara üretirken hem var olan numaralrı çıkartıyor hemde istemediğim bir cümle varsa onları çıkartıyor toplamda 15-20 saniyede 2120000001 den 2129999999 c:\dosya.txt oalrak üretiyor çok hızlı yapıyor bu işlemi normalde 5-10 saat sürebiliyor holyone sayesinde 15-20 saniyede biter şekilde kodladı .
eğer elinizde numara yok sadece belirli numara üretecekseniz data klasörüne içi boş bit txt atabilirsiniz.
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication11 { class Program { static HashSet numaralar = new HashSet(); static void Main(string[] args) { string[] istenmeyenler = new string[] {"istenmeyen text", "istenmeyen text", "istenmeyen text", "istenmeyen text"}; string klasoradi=@"c:\data\"; string[] dosyalar= System.IO.Directory.GetFiles(klasoradi, "*.txt", SearchOption.AllDirectories); foreach (string d in dosyalar ) { using (FileStream fs = new FileStream(d, FileMode.Open)) { fs.Seek(0, SeekOrigin.Begin); TextReader tr = new StreamReader(fs); Console.WriteLine("Dosya okunuyor:"+d); string line = ""; while (true ) { line = tr.ReadLine(); if (line == null) break; bool istenmeyen = false; if (line.Contains('\t')) { int ind= line.IndexOf('\t'); line = line.Substring(0,ind); string val = ""; if(line.Length>ind) val= line.Substring(ind + 1); if (istenmeyenler.Contains(val)) { istenmeyen = true; } } ulong u = 0; if (!istenmeyen) if (ulong.TryParse(line, out u)) { numaralar.Add(u); } } } } string filepath = @"c:\dosya.txt"; using (FileStream f = new FileStream(filepath, FileMode.Append, FileAccess.Write)) { StreamWriter sw=new StreamWriter(f); for (ulong i = 2120000000; i < 2129999999; i++) { if(! numaralar.Contains(i)) sw.WriteLine(i.ToString()); if ((i % 10000) == 0) Console.WriteLine(i.ToString()); } sw.Close(); f.Close(); } /* for (ulong i = 5320000000; i < 5330000000; i++) { System.IO.File.AppendAllText(@"c:\dosya.txt", i.ToString() + "\r\n"); }*/ } } } -
SerYolcu bunu yazdıKrypT bunu yazdı
Yani.
Yarım sayfa kod mu yazılır la bunun için.
Krypt senin gözlerin mi bozuk ?
Evelde biraz zeki görünüyordun gözüme. Sağol hocu.
-
KrypT bunu yazdıCEO bunu yazdıKrypT bunu yazdıHolyOne bunu yazdı
for (int i = 0; i++ < 99999; System.IO.File.AppendAllText("dosya.txt", i.ToString() + "\r\n")) ;
Yani.
Yarım sayfa kod mu yazılır la bunun için.
Herşeye muhalefet olmak yerine, madem çok biliyordun sen neden yazmadın ?
Regl misin?
Şu sitede her sikime muhalefet olan senin gibi biri daha varmı merak ediyorum..
Madem çok biliyosun, yazaydın o zaman !
CEO tarafından 09/Nis/14 11:44 tarihinde düzenlenmiştir -
KrypT bunu yazdıSerYolcu bunu yazdıKrypT bunu yazdı
Yani.
Yarım sayfa kod mu yazılır la bunun için.
Krypt senin gözlerin mi bozuk ?
Evelde biraz zeki görünüyordun gözüme. Sağol hocu.
Evvelde gözlerin sağlammış, senin gözler yeni yeni bozulmaya başlamış...
-
ElizaBeTH bunu yazdıDaft bunu yazdı
hocam bat dosyası verdim en kolay o şekilde halledersin?
hocam dosyayı nereye kayıt ediyor onu bulamadım
bide 000 00 01 den 999 99 99 a kadar yapacak en hızlı hangisi olursa onla başlayayım diyorum
hacı bat dosyasını nereye oluşturduysan onun yanına liste.txt olarak çıktı veriyor :|
