Jump to content
Son zamanlarda artan kullanıcı hesap hırsızlıkları sebebiyle tüm kullanıcılara şifre sıfırlama maili gönderilmiştir. Lütfen güveli şifreler seçiniz. Mevcut e-mail adresinize erişemiyorsanız, en aşağıdaki destek linkinden bize ulaşınız. ×

For Döngüsü Ve Ini Ilişkisi


PColik
 Share

Recommended Posts

Arkadaşlar merhaba,

ben bir for döngüsü hazırlamaya çalıştım. Elimdeki Ini dosyasını size göstereyim;

Spoiler

[Prices]
Armut=5
Elma=10
Portakal=15
Üzüm=7
Şeftali=9

 

Butona eklediğim kod ise şöyle:

Spoiler

malzeme = Input.GetText("malzeme");
malzemetable = INIFile.GetValueNames("files\\prices.vst", "Prices");

for i,j in pairs(malzemetable) do

if malzeme == j then
Dialog.Message("Doğru", "Doğru", MB_OK, MB_ICONINFORMATION);
else
Dialog.Message("Yanlış", "Yanlış", MB_OK, MB_ICONINFORMATION);
end

end

 

Ama bu kod hatalı, Input'a INI dosyasında olan bir değerde yazsam, örneğin Elma yanlış diyor, ve de bir de şöyle bir kod denedim;

Spoiler

malzeme = Input.GetText("malzeme");
malzemetable = INIFile.GetValueNames("files\\prices.vst", "Prices");

for i,j in pairs(malzemetable) do

if malzeme ~= j then
Dialog.Message("Yanlış", "Yanlış", MB_OK, MB_ICONINFORMATION);
-- Buraya kalan işlemlere devam etmemesi için break mı yazılıyor yoksa Application.ExitScript mi yazılıyor bilmiyorum
end

end

 

Bu koda göre de aynı şekilde Input'a yazdığım şey INI'de olsa bile Yanlış mesajı çıkıyor ve de kaç tane varsa o kadar tekrar ediyor. Mesela Input'a araba yazdım diyelim, INI dosyasında toplamda 5 tane Value var, bu yüzden 5 tane üst üste Yanlış yazan Dialog.Message çıkıyor.

Bu iki kodun da doğrusu söyleyebilir misiniz arkadaşlar?

Link to comment
Share on other sites

malzeme = Input.GetText("malzeme");
malzemetable = INIFile.GetValueNames("AutoPlay\\Docs\\prices.ini", "Prices");

for i,j in pairs(malzemetable) do
    if malzeme == j then
       Dialog.Message(j, "Doğru", MB_OK, MB_ICONINFORMATION);
       Application.ExitScript();
    else
       Dialog.Message(j, "Yanlış", MB_OK, MB_ICONINFORMATION);
       Application.ExitScript();
    end
end

Bende hata vermedi.

  • Like 1
Link to comment
Share on other sites

xarax, 2 saat önce yazdı:

malzeme = Input.GetText("malzeme");
malzemetable = INIFile.GetValueNames("AutoPlay\\Docs\\prices.ini", "Prices");

for i,j in pairs(malzemetable) do
    if malzeme == j then
       Dialog.Message(j, "Doğru", MB_OK, MB_ICONINFORMATION);
       Application.ExitScript();
    else
       Dialog.Message(j, "Yanlış", MB_OK, MB_ICONINFORMATION);
       Application.ExitScript();
    end
end

Bende hata vermedi.

Benim hatadan kastım şu:

Örnek olarak değilde gerçek kodları paylaşayım seninle: Benim INI dosyam şu:

Spoiler

[Prices]
30084527=3,71
30084734=6,51
30085435=1,37
30086033=5,61
30086044=1,41
30086289=19,08
30086306=16,96
30086924=4,24
30086925=4,53
30086926=1,34
30086927=5,90
30087785=5,61
30088765=13,34
30088766=15,67
30088774=10,30
30088945=6,70
30089629=13,53
30089773=2,22
30090525=6,61
30091104=4,77
30092932=14,76
30093365=20,15
30093370=6,94
30093672=2,01
30093842=4,30
30093935=2,06
30093945=6,91
30094113=12,29
30094127=15,61
30095058=4,74
30095067=7,93
30095403=19,19
30095404=16,01
30095951=2,18
30096030=17,52
30097810=16,10
30096089=2,15
30096527=13,83
30096713=20,19
30096807=1,87
30096821=0,01
30096918=7,72
30097277=11,38
30097747=29,10
30097797=16,38
30097962=4,53
30098405=3,52
30098412=5,08
30098421=1,46
30098658=16,18
30098674=4,77
30098708=37,52
30099099=4,99
40067143=1,99

 

Gördüğün gibi malzeme kodları yazıyor, karşısında da fiyatları yazıyor.

Butondaki kod ise şöyle:

Spoiler

malzeme = Input.GetText("malzeme");
malzemetable = INIFile.GetValueNames("AutoPlay\\Docs\\prices.ini", "Prices");

for i,j in pairs(malzemetable) do
    if malzeme == j then
       Dialog.Message(j, "Doğru", MB_OK, MB_ICONINFORMATION);
       Application.ExitScript();
    else
       Dialog.Message(j, "Yanlış", MB_OK, MB_ICONINFORMATION);
       Application.ExitScript();
    end
end

 

Hata dediğim ise şu. Şimdi Input'a 30090525 yazıp butona bastığım zaman Doğru demesi lazım. Çünkü 30090525 değeri INI dosyasında var. Fakat INI dosyasında olmayan bir değer yazdığım zaman, mesela 12345679 veya abcdefgh gibi INI dosyasında olmayan bir şey yazdığım zaman Yanlış demesi lazım. Fakat ben ne yazarsam yazayım, INI dosyasında olsada olmasada Yanlış diyor. Bunun nedenini merak ediyorum çözemedim bir türlü.

Link to comment
Share on other sites

malzeme = Input.GetText("malzeme");
tMalzeme = INIFile.GetValueNames("AutoPlay\\Docs\\pricess.ini", "Prices")

for i,j in pairs(tMalzeme) do
    if malzeme == j then
       Dialog.Message(j, "Doğru", MB_OK, MB_ICONINFORMATION);
       Application.ExitScript();
    end
end
Dialog.Message("Yanlış", "Yanlış", MB_OK, MB_ICONINFORMATION);

Bu şekilde yaptım hata çıkmadı. Varolan bir değeri giriyorum. Doğru diyor olmayan değer girince bulamadığı için  Yanlış diyor. apz dosyası da atıyım. Hata görüntüsünü atarsan birde o zaman bakalım.

https://www.upload.ee/files/8115066/initest.apz.html

 

  • Like 1
Link to comment
Share on other sites

xarax, 11 saat önce yazdı:

malzeme = Input.GetText("malzeme");
tMalzeme = INIFile.GetValueNames("AutoPlay\\Docs\\pricess.ini", "Prices")

for i,j in pairs(tMalzeme) do
    if malzeme == j then
       Dialog.Message(j, "Doğru", MB_OK, MB_ICONINFORMATION);
       Application.ExitScript();
    end
end
Dialog.Message("Yanlış", "Yanlış", MB_OK, MB_ICONINFORMATION);

Bu şekilde yaptım hata çıkmadı. Varolan bir değeri giriyorum. Doğru diyor olmayan değer girince bulamadığı için  Yanlış diyor. apz dosyası da atıyım. Hata görüntüsünü atarsan birde o zaman bakalım.


https://www.upload.ee/files/8115066/initest.apz.html

 

Allah Allah, çok garip ya. Projeme geçince tekrar bi kontrol ederim eğer yine hata verirse ekran videosu kaydedip gönderirim. Sağol kardeşim.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...