Eski 22-02-09, 18:11 #1
jeofizikçi jeofizikçi çevrimdışı

bynogame
Alarm Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
Öncelikle 3 sütundan oluşan bir veri dosyası oluşturalım ve bu dosyayı C: dizinine veri.txt olarak kaydedelim.



Oluşturduğumuz bu dosyadaki veri sayısı önemli değildir. Ben burada veri sayısını 35 olarak aldım. Şimdi formumuza 1 adet listbox, bir adet command button ekleyelim. Listbox kutusunun visible özelliğini false yapalım ve gizleyelim. Daha sonra project menüsünde components den Microsoft Flexgrid control 6.0'ı projemize ekleyelim ve forma bir adet flexgrid nesnesi ekleyelim. Bu nesnemizin özelliklerini aşağıdaki gibi değiştirelim;
Fixedcols=0
Cols=3
Rows=10
Burada rows özelliğine istediğiniz değeri verebilirsiniz.

Şimdi kod yazmaya başlayalım. Öncelikle bir fonksiyon tanımlayarak veri sayımızı hesaplayalım;
Function verisayisi()
Dim vsayi As Integer
Open "c:\veri.txt" For Input As 1
Do While True
If Not EOF(1) Then
Input #1, a, b, c
List1.AddItem a
vsayi = List1.ListCount
Else
Close #1
MSFlexGrid1.Rows = vsayi + 1
Exit Function
End If
Loop
End Function

Buradaki kodları kısaca açıklayacak olursak; veri.txt dosyamızı açıyoruz ve dosyadaki 3 sütunu a, b ve c olarak okuyoruz. a sütunundaki verileri listbox nesnesine ekliyoruz ve listcount özelliğini kullanarak veri sayısını elde ediyoruz. Daha sonra bu veri sayısını kullanarak flexgrid nesnemizin kaç satırdan oluşacağını belirliyoruz. Şimdi verileri MsflexGrid nesnemize ekleyelim. Bunun için aşağıdaki kod yordamını hazırladım;

Private Sub Command1_Click()
Dim v1, v2, v3 As Double
Dim satir, sutun As Integer
verisayisi
Open "c:\veri.txt" For Input As 1
satir = 1
sutun = 0
Do While True
If Not EOF(1) Then
Input #1, v1
Input #1, v2
Input #1, v3
MSFlexGrid1.Row = satir
MSFlexGrid1.Col = sutun
MSFlexGrid1.Text = v1
MSFlexGrid1.Col = sutun + 1
MSFlexGrid1.Text = v2
MSFlexGrid1.Col = sutun + 2
MSFlexGrid1.Text = v3
satir = satir + 1
sutun = 0
Else
Close #1
Exit Sub
End If
Loop
End Sub

Burada ilk olarak dosyadaki veriler için v1, v2 ve v3 değişkenlerini daha sonra da flexgrid nesnesinin satır ve sütun değişkenlerini tanımlıyoruz. Yukarıda yazdığımız veri sayısı fonksiyonunu kullanarak dosyadaki veri sayısını belirliyoruz. FlexGrid nesnemize ilk olarak 1. satır 0. sütundan yazmaya başlayacağımız için satır ve sütun değişkenlerimize 1 ve 0 değerlerini atıyoruz. Do while döngüsünü kullanarak dosyamızın içindeki verileri okuyoruz. Msflexgrid nesnemize yazma işlemimiz ise şu şekilde devam ediyor; İlk olarak 1. satırın tüm hücrelerine 1 satırdaki 3 veriyi yazıyoruz (satır değişkenini sabit tutup sütun değişkenini 1'er arttırıyoruz.). Daha sonra satir değişkenini bir arttırarak 2. satıra geçiyoruz ve sütun değişkenine 0 değeri vererek ilk sütuna geri dönüyoruz. Do while döngüsü içinde bu işlemi dosyadaki son veriye kadar yapıyoruz ve tüm verilerimizi MsflexGrid nesnemize aktarmış oluyoruz.
Sizde bu bilgileri kullanarak yeni projeler hazırlayabilirsiniz. Hepinize iyi çalışmalar...


Mesajı son düzenleyen heavenskhan ( 17-03-10 - 21:46 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 07-03-09, 22:49 #2
jeofizikçi jeofizikçi çevrimdışı

bynogame
Varsayılan C: Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
Arkadaşlar yukarıda verilen adres taşınmıştır. Yeni adres:

****************

Mesajı son düzenleyen heavenskhan ( 17-03-10 - 21:46 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 17-03-10, 17:24 #3
zenonsome zenonsome çevrimdışı

bynogame
Varsayılan C: Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
Sayın Jeofizikçi

Herşeyden önce çok teşekürler. bu kodların visual c++ karşılığı varmı acaba. Paylaşırsanız çok sevinirim. Bir txt dosyasınının istediğim satır ve sütununa string'i yazamıyorum.

Tekrar çok çok teşekürler....
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 17-03-10, 21:49 #4
heavenskhan heavenskhan çevrimdışı

bynogame
Varsayılan C: Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
şimdilik linkleri sildim paylaşımın güzel fakat site reklamı yapmazsan sevinirim..
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 02-02-21, 15:42 #5
ikayserili ikayserili çevrimdışı

bynogame
Varsayılan C: Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
kodlar için teşekkür ederim. çok güzel çalışıyor. bölümler arası boşluk bıraktım okudu. bölümler arası virgül attım yine okudu

benim sorum;
Dosyanın ismi ve konumu hakkında:
c:\veri.txt
bunun yerine kullanıcıya seçtirmek istesek ?
CommonDialog mu kullanmamız gerekli ?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 05-02-21, 18:25 #6
qazw7 qazw7 çevrimdışı

bynogame
Varsayılan C: Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
Alıntı:
Gerçek Mesajı Gönderen ikayserili Mesajı Göster
kodlar için teşekkür ederim. çok güzel çalışıyor. bölümler arası boşluk bıraktım okudu. bölümler arası virgül attım yine okudu

benim sorum;
Dosyanın ismi ve konumu hakkında:
c:\veri.txt
bunun yerine kullanıcıya seçtirmek istesek ?
CommonDialog mu kullanmamız gerekli ?
Aslında tek yol o değil ama en hoş olanı o.

Bir başka yol; mevcut formunuzun DriveListBox, FileListBox kullanarak dosyayı seçtirebilirsiniz. Bunları ayrı bir forma koyup, formu aç kapa yaptırarak bir tür "CommonDialog" yapabilirsiniz kendinize.

En uç örnek olarak; forma bir text kutusu koyarsınız, kullanıcınız, text kutusuna dosyanın adresini ve adını yazar.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 06-02-21, 14:03 #7
ikayserili ikayserili çevrimdışı

bynogame
Varsayılan C: Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
Alıntı:
Gerçek Mesajı Gönderen qazw7 Mesajı Göster
Aslında tek yol o değil ama en hoş olanı o.

Bir başka yol; mevcut formunuzun DriveListBox, FileListBox kullanarak dosyayı seçtirebilirsiniz. Bunları ayrı bir forma koyup, formu aç kapa yaptırarak bir tür "CommonDialog" yapabilirsiniz kendinize.

En uç örnek olarak; forma bir text kutusu koyarsınız, kullanıcınız, text kutusuna dosyanın adresini ve adını yazar.
cevabınız için teşekkür ederim. CommonDialog kullanmak en mantıklısı.
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 06-02-21, 18:18 #8
ikayserili ikayserili çevrimdışı

bynogame
Varsayılan C: Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
CommonDialog İle Dosya Seçme İşlemine Ait Kodları da ben paylaşıyım;

Dim OkunanDosya As String
Function verisayisi()
Dim vsayi As Integer
CommonDialog1.DialogTitle = "Okunacak Veri Dosyasını Seçiniz"
CommonDialog1.Filter = "Yazı Dosyası (*.txt) | *.txt"
CommonDialog1.CancelError = True
CommonDialog1.Flags = cdlOFNNoReadOnlyReturn
CommonDialog1.Action = 1
Open CommonDialog1.FileName For Input As #1
OkunanDosya = CommonDialog1.FileName
Do While True
If Not EOF(1) Then
Input #1, a, b, c
List1.AddItem a
vsayi = List1.ListCount
Else
Close #1
MSFlexGrid1.Rows = vsayi + 1
Exit Function
End If
Loop
End Function
Private Sub Command1_Click()
Dim v1, v2, v3 As Double
Dim satir, sutun As Integer
verisayisi
Open OkunanDosya For Input As 1
satir = 1
sutun = 0
Do While True
If Not EOF(1) Then
Input #1, v1
Input #1, v2
Input #1, v3
MSFlexGrid1.Row = satir
MSFlexGrid1.Col = sutun
MSFlexGrid1.Text = v1
MSFlexGrid1.Col = sutun + 1
MSFlexGrid1.Text = v2
MSFlexGrid1.Col = sutun + 2
MSFlexGrid1.Text = v3
satir = satir + 1
sutun = 0
Else
Close #1
Exit Sub
End If
Loop
End Sub

Mesajı son düzenleyen ikayserili ( 07-02-21 - 15:50 )
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Eski 08-02-21, 23:39 #9
ikayserili ikayserili çevrimdışı

bynogame
Varsayılan C: Text dosya İÇerİĞİnİ msflexgrİd nesenesİne aktarma

bynogame
Merhaba Arkadaşlar
Kodlar Bu haliyle
format 1) koordinatlar arası ayırıcı ifade virgül

668575.97,4267305.26,1415.44
format 2) koordinatlar arası ayırıcı ifade boşluk

668575.97 4267305.26 1415.44
bu 2 şekilde formatı okumaktadır.
ihtiyaçtan dolayı sütün sayısını 4'e çıkarmam gerekti.
malum kodlara c'nin yanına d ve v3'ün yanına v4'ü ve ayrıca

MSFlexGrid1.Col = sutun + 3
MSFlexGrid1.Text = v4
gibi eklemeleri yaptım.
programı çalıştırdığımda,

Format 1) koordinatlar arası ayırıcı ifade virgül
hjhj,668575.97,4267305.26,1415.44
bu dosyayı okumakta sorun olmamaktadır.
tekrar çalıştırdıktan sonra 2ci denememde
Format 2) koordinatlar arası ayırıcı ifade boşluk
aaa 668575.97 4267305.26 1415.44
bu dosyayı okumamaktadır kodlar hata vermektedir. Hata Verdiği kısım:
Input #1, a, b, c, d

kodlarının bulunduğu kısımdır. kodları incelediğimde:
a) 4267305.26
b) 1415.44
c) aaa 668575.97 4267305.26 1415.44
d) BOŞ uyarısı çıkıyor.
şeklinde oluyor. bu hatayı nasıl düzeltebilirim ?
  Alıntı Yaparak CevaplaAlıntı Yaparak Cevapla
Cevapla

Bu konunun kısa yolunu aşağıdaki sitelere ekleyebilirsiniz

Konu Araçları

Gönderme Kuralları
Yeni konu açamazsınız
Cevap yazamazsınız
Dosya gönderemezsiniz
Mesajlarınızı düzenleyemezsiniz

BB code is Açık
Smiley Açık
[IMG] kodu Açık
HTML kodu Kapalı



Tüm saatler GMT +3. Şuan saat: 07:33
(Türkiye için artık GMT +3 seçilmelidir.)

 
5651 sayılı yasaya göre forumumuzdaki mesajlardan doğabilecek her türlü sorumluluk yazan kullanıcılara aittir. Şikayet Mailimiz. İçerik, Yer Sağlayıcı Bilgilerimiz. Tatil


bynogame