Thalion Mesaj tarihi: Kasım 20, 2004 Paylaş Mesaj tarihi: Kasım 20, 2004 Selamlar, elimde parse etmem gereken bir log file var, parser'ı yazıyorumda istemediğim bir takım kısımları çıkartmak için regular expression'ları kullanmam gerekiyor, programlama konusunda pek parlak değilim, özellikle de regular expression'lar konusunda hiç parlak değilim, bayaa bir döküman okudum ama kafam iice daaldı, 14.11.04-10:32:33,14.11.04-10:32:46,40,[0001:01]05324911659,0101,13,0 log file'ın formatı bu 14.11.04 ---> start date 10:32:33 ---> start time 14.11.04 ---> stop date 10.32.46 ---> stop time 05324911659 ---> called number 13 ---> duration log file'dan almak istediklerim bunlar, ama txt. file'ı alırken bunları ayıracak expression'ı yaamadım bir türlü.. yardım edebilecek birileri varsa sevinirim..[signature][hline] MS / Linux System Admin, Backbone Administrator, VoIP Technician, NooBie C# Developer , ex pisikopat MCSE,MCSA,MCDBA,CCNA icq : 566413 msn : [email protected] There is no darkness, only ignorance.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Thalion Mesaj tarihi: Kasım 20, 2004 Konuyu açan Paylaş Mesaj tarihi: Kasım 20, 2004 dtTable.Columns.Add("StartDate", typeof(string)); dtTable.Columns.Add("StartTime", typeof(string)); dtTable.Columns.Add("StopDate", typeof(string)); dtTable.Columns.Add("StopTime", typeof(string)); dtTable.Columns.Add("CalledNumber", typeof(string)); dtTable.Columns.Add("Duration", typeof(string)); //Set Regular Expression //If you were parsing a standard comma delimited text file //you would use this expression: Regex r = new Regex(",(?=([^"]*"[^"]*")*(?![^"]*"))"); ahanda bu da örnek aldığım kod, bold olan kısımda amca kendi log file'ı için bir regular expression hazırlamış... bende benimkine uyarlıyabilirsem sorunum kalmayacak..[signature][hline] MS / Linux System Admin, Backbone Administrator, VoIP Technician, NooBie C# Developer , ex pisikopat MCSE,MCSA,MCDBA,CCNA icq : 566413 msn : [email protected] There is no darkness, only ignorance.. [Bu mesaj Thalion tarafından 20 Kasım 2004 18:05 tarihinde değiştirilmiştir] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 20, 2004 Paylaş Mesaj tarihi: Kasım 20, 2004 walla .NET te hic regex kullanmadım ama sabahtan beri compiler ödeviyle ugrasan bi insan olarak pek sevmiyorum :p simdi sen adamın verdigi regexi yazmıssın da, ben regexler bu sekilde kullanılıyor mu bilmiyorum, kullandıgınız bi regex sonucunda genelde gelen inputu ya accept ya da reject edersiniz..atıyorum mesela customize bi numberbox yazıosunuz, adam harf giremicek veya "." dan sonra max 2 basamak gircek felan. gelen input formata uyuyorsa kabul ediyorsunuz yoksa reject vs.. bu sekilde bi stringin işinize gelen kısmını kırpmak icin kullanıldıgını görmedim..adamın örnegini daha acık yazarsan belki yardımcı olabilirim. öte yandan her zaman aldıgın input bu formattaysa regex falan kasmana gerek pek yok. substring leri alarak veya cesitli split fonksiyonları kullanarak istedigin seyleri elde edebilirsin gibi gözüküyor.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Thalion Mesaj tarihi: Kasım 20, 2004 Konuyu açan Paylaş Mesaj tarihi: Kasım 20, 2004 log formatım sabit yani hep bu şekilde olacak, bende daha çoook yeniyim programlama konusunda, o nedenle kod sitelerine örnek kod'lar için bakarak bişiler bulmaya çalışıyorum. regex ile yapılan en kolay örnekti gördüklerim arasında, ama tabiiki başka yollarada açığım, substring ile bölmeyi beceremedim ( benim kabızlığım :P ) regex'e takılmamın nedeni de daha önce birlikte çalıştığım elemanın perl script'ler ile hazırladığı parser'larda regex'leri kullanarak çok güçlü bir şekilde gb'lerce log'u kasmadan parse ettiğini görmem, o nedenle regex'lere taktım birazda, aslında SQL'e direk bulk insert'de edebiliyorum ama sadece ayıklamam gereken 1-2 yer kalıyor. bakayım 1 for döngüsü ile line by line substring'lere ayırıp denerim artık, regex'in tek artısı bana bulk olarak yapmasıydı ama çok da dert deeel, log file'larım o kadarda büyük deel günlük max 100k satır..[signature][hline] MS / Linux System Admin, Backbone Administrator, VoIP Technician, NooBie C# Developer , ex pisikopat MCSE,MCSA,MCDBA,CCNA icq : 566413 msn : [email protected] There is no darkness, only ignorance.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 20, 2004 Paylaş Mesaj tarihi: Kasım 20, 2004 said: string Source="14.11.04-10:32:33,14.11.04-10:32:46,40,[0001:01]05324911659,0101,13,0"; string startDate=Source.subStr(0,8); string startTime=Source.subStr(9,8); string stopDate=Source.subStr(18,8); string stopTime=Source.subStr(27,8); gibi kullanabilirsin. p.s subStr tam olarak methodun adı olmayabilir.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 20, 2004 Paylaş Mesaj tarihi: Kasım 20, 2004 said: Thalion, 20 Kasım 2004 18:02 tarihinde demiş ki: 14.11.04-10:32:33,14.11.04-10:32:46,40,[0001:01]05324911659,0101,13,0 14.11.04 ---> start date 10:32:33 ---> start time 14.11.04 ---> stop date 10.32.46 ---> stop time 05324911659 ---> called number 13 ---> duration öncelikle kim bu şekilde log tutuyorsa büyük bir hata yapıyor. , gibi bir splitter pek uygun değil. ama değiştiremeyeceğimiz varsayıyorum.. string startdate, starttime, stopdate, stoptime, number, duration; // stream işlemleri string tey = log.ReadLine(); // bir satırın seçildiğini varsayıyorum. string[] parca = tey.Split( "," ); startdate = parca[0].Substring( 0, parca[0].IndexOf( "-" ) ); starttime = parca[0].Substring( "-" ); stopdate = parca[1].Substring( 0, parca[1].IndexOf( "-" ) ); stoptime = parca[1].Substring( "-" ); number = parca[2].Substring( "]" ); duration = parca[4]; //sonradan gördüm, eğer uzunluklar sabitse cedayın çözümündeki gibi direkt indeksleri kullanabilirsin. ve eğer yaptığın iş memory kıtlığında yapılacaksa bu şekilde bellek tasarrufu yapabilirsin. ( gerçi yapsan yapsan 2 mb tasarruf yaparsın ya :D ) [signature][hline]en ince yerim bileğim..!?! [Bu mesaj Mum_Chamber tarafından 20 Kasım 2004 19:53 tarihinde değiştirilmiştir] [Bu mesaj Mum_Chamber tarafından 20 Kasım 2004 19:55 tarihinde değiştirilmiştir] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Thalion Mesaj tarihi: Kasım 22, 2004 Konuyu açan Paylaş Mesaj tarihi: Kasım 22, 2004 Teşekkürler Mum ve Ceday, sonradan farkettim duration kısmındaki değer 1-3 digit arasında oynıyor o nedenle subsplit'i direk digit'lere göre yaptığım zaman patlıyorum, Mum'un çözümü sorunu halletmemi sağladı..[signature][hline] MS / Linux System Admin, Backbone Administrator, VoIP Technician, NooBie C# Developer , ex pisikopat MCSE,MCSA,MCDBA,CCNA icq : 566413 msn : [email protected] There is no darkness, only ignorance.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 bu arada regex kısmını arastırdın mı? mesela senin dedigin gibi perl'de felan regexler epey kullanılıyor ancak onda da mesela 3-4 regex yazıosunuz daha sonra regex1 e uyuyosa sunu yap, suna uyuyosa bunu yap gibi seklinde parse ediosunuz.. bi stringi kırpma seklinde bi kullanımı yok sanırım ? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 ceday, senin dediğin gibi regexler kontrolde kullanılıyor. ki benim de şu C# regexlere bakmam lazım.. iyi bir kaynak bulan link verirse.. uff :D süfer olur :D (msdn olmasın da..)[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 regex genel birsey abi. C# a özgü bisi deil. regular expression olarak aratırsan sınırsız döküman bulursun.. hatta flex/lex die de cok güzel lexical scannerlar mevcut. ama ders olarak bunları görünce pek sevmiyebiliyosun ehe Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 yok anlatamadım :D c#'ta regex kullanmadım daha önce. yani syntaxini bilmiyorum :D yani regex aramıyorum, c#'ta regex arıyorum :D yoksa dandirikten phpde bile, t-sql'de bile regexler var.[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Thalion Mesaj tarihi: Kasım 22, 2004 Konuyu açan Paylaş Mesaj tarihi: Kasım 22, 2004 Elimde bir kod örneği vardı, adam ciddi karmaşık bir log file'ı regex ile çok kolay bir şekilde kırpıp dataset'e atmıştı ama adamın regex'ini anlamadığım ve bende adam gibi bir regex hazırlayamadığım için split'i tercih ettim, yoksa MSDN'de bile parser için en iyi yöntemin regex olduu söleniyor. http://www.regular-expressions.info/ burada regular expression'lar ile ilgili bayaa bişi anlatıyor ama C#'ta kullandığım zaman unrecognized escape sequence mı ne veriyor. split ederek grid'e attım ama nedenini anlamadığım bir şekilde sql'e yazdırmaya çalıştığım zaman her seferinde hata alıyorum, ben StartDate StopDate vs. field'lerini string olarak atmaya çalışsam bile C# invalid data/time format exception'ı atıyor. bir şekilde halledecem bakalım, muhtemelen acemiliğimden biryerlerde hata yapıyorum.[signature][hline] MS / Linux System Admin, Backbone Administrator, VoIP Technician, NooBie C# Developer , ex pisikopat MCSE,MCSA,MCDBA,CCNA icq : 566413 msn : [email protected] There is no darkness, only ignorance.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 veritabanında date olarak mı tutuyorsun ki? ek: link süfer. [signature][hline]en ince yerim bileğim..!?! [Bu mesaj Mum_Chamber tarafından 22 Kasım 2004 19:37 tarihinde değiştirilmiştir] Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 Thalion DateTime olarak sql e gönder. Sql deki column typelarınla gönderdigin dataların typelarının uyusması gerekiyor. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Mum_Chamber Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 hatta .net fw içinde sqldatatypes librarysi var meali: hatta c#ta sql veri tipleri var. System.Data.SqlTypes.SqlDateTime.Parse( string s );[signature][hline]en ince yerim bileğim..!?! Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Thalion Mesaj tarihi: Kasım 22, 2004 Konuyu açan Paylaş Mesaj tarihi: Kasım 22, 2004 bi kurcalıyım, şu anda ftp'den logları otomatik çekme servisi, cofig'lerinin xml'leri ve timer'ları ile cebelleşiyorum :) data'lar ile uğraşmak biraz baydı da.[signature][hline] MS / Linux System Admin, Backbone Administrator, VoIP Technician, NooBie C# Developer , ex pisikopat MCSE,MCSA,MCDBA,CCNA icq : 566413 msn : [email protected] There is no darkness, only ignorance.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 Abi eğer C# ile çalışma zorunluluğun yoksa Perl ile bişeyler yapmaya çalış derim. Çünkü bahsettiğin şeyleri yapmak için tasarlanmış bir betik dili Perl.[signature][hline]Q: How many IBM cpu's does it take to do a logical right shift? A: 33. 1 to hold the bits and 32 to push the register. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 kıskanma sharky :P .NEt iste ne güsel (: Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 lol. ne kıskanacam be :) . ve scroll tuşları ile programlama yapıorsunuz, sizi mi kıskanacam. :D[signature][hline]Q: How many IBM cpu's does it take to do a logical right shift? A: 33. 1 to hold the bits and 32 to push the register. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Ceday Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 tek el yetio işte, olayın güzelligi orda :P Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
sharky Mesaj tarihi: Kasım 22, 2004 Paylaş Mesaj tarihi: Kasım 22, 2004 doru lan, farkedememişim bunu.[signature][hline]Q: How many IBM cpu's does it take to do a logical right shift? A: 33. 1 to hold the bits and 32 to push the register. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Thalion Mesaj tarihi: Kasım 23, 2004 Konuyu açan Paylaş Mesaj tarihi: Kasım 23, 2004 hehe sadece parser için kasmıyorum valla can sıkıntısından network babalar gibi işliyo bana da yapacak ş kalmıyo :P bende kendime iş çıkartıyorum yoksa parser'ım var zaten derdim kendikimi yazmak ;) C# çünkü buradaki programcılarım .netci, baymaz'da gekiştirirsem kendimi önceden yazılmış olan bazı programlarda değişiklikler ve eklemeler yapmayı planlıyorum da.. ( ölme eşşeem ölme )[signature][hline] MS / Linux System Admin, Backbone Administrator, VoIP Technician, NooBie C# Developer , ex pisikopat MCSE,MCSA,MCDBA,CCNA icq : 566413 msn : [email protected] There is no darkness, only ignorance.. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar