1. sayfa
F8 ile kontrol ettim..
bu kısım read ini modülünde ... Form1de de read write ini ve database kullanıyorum ama hata almıyorum.. Ama Form2 de alıyorum..Form2 de daha fazla read ve write vaar... Birde hata form açılr açılmaz birşeye basmadan geliyor..Form load larda hiç write ini yok..Database ile ilgili birşeyde yok..Sadece read ini var.. O yüzden kesin sorun burada.. Nasıl halledebilirim bu sorunu??? |
Merhaba , Sıralı erişimde dosyayı okuma/yazma modunda açıyorsanız başka bir işlem için dosyanın açık olmadığından emin olmalısınız. Başka bir yordamın içinde kullanıp dosyayı close # yapmadıysanız hata oluşabilir. |
Form1 de niye hata vermiyor..Aynı şeyleri kullandım..![]() Write yazıp daha sonra okuyabiliyorum.. Başka ini dosyasına geçebiliyorum..Modül den bunu düzeltebilir miyiz? |
Merhaba , Kodunuzu biraz inceledim bir functionun içerisinde bir çok alt parça kod işletmişsiniz. Bu şekilde bir kod yazımı bence çok sağlıklı değil , tabi bazı şeyler kodu yazan kişinin insiyatifindedir, ama ben bu tarz konularda hep biraz daha fazla kodlama yapıp işlemin düzenli olmasını tercih ederim. Aşağıdaki gibi ADDkey , ADDvariable gibi aynı kodun içerisinde karmaşık bir şekilde işleteceğinize bu işlemler için ayrı ayrı functionlar tanımlamak, hatanızı daha kolay betimlemenizi sağlayabilir. Public Function WriteIniValue(INIpath As String, PutKey As String, PutVariable As String, PutValue As String) Dim Temp As String Dim LcaseTemp As String Dim ReadKey As String Dim ReadVariable As String Dim LOKEY As Integer Dim HIKEY As Integer Dim KEYLEN As Integer Dim VAR As Integer Dim VARENDOFLINE As Integer Dim NF As Integer Dim x As Integer AssignVariables: NF = FreeFile ReadKey = vbCrLf & "[" & LCase$(PutKey) & "]" & Chr$(13) KEYLEN = Len(ReadKey) ReadVariable = Chr$(10) & LCase$(PutVariable) & "=" EnsureFileExists: Open INIpath For Binary As NF Close NF SetAttr INIpath, vbArchive LoadFile: Open INIpath For Input As NF Temp = Input$(LOF(NF), NF) Temp = vbCrLf & Temp & "[]" Close NF LcaseTemp = LCase$(Temp) LogicMenu: LOKEY = InStr(LcaseTemp, ReadKey) If LOKEY = 0 Then GoTo AddKey: HIKEY = InStr(LOKEY + KEYLEN, LcaseTemp, "[") VAR = InStr(LOKEY, LcaseTemp, ReadVariable) If VAR > HIKEY Or VAR < LOKEY Then GoTo AddVariable: GoTo RenewVariable: AddKey: Temp = Left$(Temp, Len(Temp) - 2) Temp = Temp & vbCrLf & vbCrLf & "[" & PutKey & "]" & vbCrLf & PutVariable & "=" & PutValue GoTo TrimFinalString: AddVariable: Temp = Left$(Temp, Len(Temp) - 2) Temp = Left$(Temp, LOKEY + KEYLEN) & PutVariable & "=" & PutValue & vbCrLf & Mid$(Temp, LOKEY + KEYLEN + 1) GoTo TrimFinalString: RenewVariable: Temp = Left$(Temp, Len(Temp) - 2) VARENDOFLINE = InStr(VAR, Temp, Chr$(13)) Temp = Left$(Temp, VAR) & PutVariable & "=" & PutValue & Mid$(Temp, VARENDOFLINE) GoTo TrimFinalString: TrimFinalString: Temp = Mid$(Temp, 2) Do Until InStr(Temp, vbCrLf & vbCrLf & vbCrLf) = 0 Temp = Replace(Temp, vbCrLf & vbCrLf & vbCrLf, vbCrLf & vbCrLf) Loop Do Until Right$(Temp, 1) > Chr$(13) Temp = Left$(Temp, Len(Temp) - 1) Loop Do Until Left$(Temp, 1) > Chr$(13) Temp = Mid$(Temp, 2) Loop OutputAmendedINIFile: Open INIpath For Output As NF Print #NF, Temp Close NF End Function |
Modülü nette buldum..Kendi kodlarım değil.. Senin yazdığını denedim gene aynı hatayı verdi.. Başka modülleride deneyemiyorum..Çünkü bütün kodları baştan değiştirmek gerekiyor.. WriteIniValue yazan kısım hepsinde farklı oluyor.. Üst kısım yani kodda kullanılacak kısım aynı olacak şekilde düzgün..write ini ve read ini modül paylaşırsanız sevinirim.. |
Merhaba , Write ini bölümünde herhangi bir hata görünmüyor , Okuma yaptığınız bölüm hatalı gibi o kısımın kodlarını paylaşırsanız vaktim ölçüsünde inceleyip yardımcı olmaya çalışabilirim. |
Buda read modülü.. Option Explicit |
Merhaba , her iki kod ile de deneme yaptım ama bende bir problem görünmüyor. Ben kendi çalıştığım küçük örneği webe yükledim sizde indirip göz gezdirebilirsiniz. Belki dosya yolu yada localinizden kaynaklanan bir sorun olabilir diye düşünüyorum yada kayıt yaptığınız ini dosyası içerisine beklenmedik hatalı bir veri kayıt edilmiş olabilir. http://r a p i d s h a r e.com/files/376132638/test_vb.rar.html iyi çalışmalar. |
Dostum sorun kesinlikle read ini modülünde.. Benimde başta hata vermiyordu.. Ama şimdi veriyor 6 tane form var..Hepsinde read ini kullanıldı..Ama 2.sinde hata vermiyor.. Diğerlerinde veriyor..İni dosyasında gerekli kısımlar var ama bulmuyor..F8 ile kontrol ettiğimde modülde burada takılıp kalıyor.. While Not EOF(NF) Line Input #NF, Temp LcaseTemp = LCase$(Temp) If InStr(LcaseTemp, "[") <> 0 Then ReadyToRead = False If LcaseTemp = KEY Then ReadyToRead = True If InStr(LcaseTemp, "[") = 0 And ReadyToRead = True Then If InStr(LcaseTemp, Variable & "=") = 1 Then ReadIniValue = Mid$(Temp, 1 + Len(Variable & "=")) Close NF: Exit Function End If End If Wend |
Yok bu sefer eminim..Ama hala çözemedim.. Ben form1 de hem okuyup yazıyorum..Ama sadece bir tane ini dosyası kullanıyorum.. Ama diğer hata veren formlarda load larında.. 3 tane ayrı ini dosyasını okuyup yazmaya çalışıyorum o yüzden hata veriyor.. Bu sorunu nasıl halledebilirim.. |
Merhaba , Eğer sakıncası yok ise programınızın komple kodunu paylaşırsanız o yönde inceleyebiliriz. Aslında mevcut kodda syntax hatası yok , ben ağırlıklı olarak sizin kodlamada bazı noktaları gözden kaçırdığınızı düşünüyorum. iyi çalışmalar. |
Kaç haftadır sinir oldum... Derleyicide programımı açıyorum hata vermiyor..Exe ye dönüştürüp çalıştırıyorum.Hata veriyor..Bir türlü çözemedim..Derleyici microsoftun olmasa laf atacamda microsoftun ![]() Çok basit ini yazma okuma kodları.. Bu hataları vermesi çok komik..ilginç.. Arkadaşımla kodları teker teker kontrol ettik çözemedik.. |
1. sayfa
Debug da hatayı write ini modülünde gösteriyor...
Temp = Input$(LOF(NF), NF)
Bu kısımda...
Modül iste bu şekilde...