Ana Sayfaya Dön
Favorilere Ekle
  Mail at

CuteFTP Kullanımı  
CuteFTP Kursu
Ftp ile Site Düzenleme

Virüs nedir?

Reklamsız site için

Banner yapımı
Banner Kaldırma
Frontpage Dersleri
Asp Dersleri
Bedava Sayaç
Bedava e-mail
İnternet Sözlüğü
Web Tasarımı
E-mail servisleri
Bedava Domain
Domain Alanları
Html Renk Kodları 
Word  Kısayolları
Powerpoint Kısayolları

Linux Kurulum
Linux Güvenlik
Linux Başlangıç
Caldera Kurulum
Ret Hat Kurulum
Slackware Kurulum
Suse Kurulum
Linux pcnet
Linux Hakkında herşey

         
İnternetten Para
Mail Okuyarak Para
Icq da Para Kazan
Kazanma Yöntemleri


Mp3 Kasede Cekme
Mp3 Yapmak
Winamp Skinsleri
Winamp Skins kullanımı
En Son Türkce Mp3'ler
Şiir Mp3
Turkce Sarkı Sozleri
Yabancı Sarkı Sozleri



ICQ Nedir
ICQ da Güvenlik
ICQ Kullanımı
ICQ Püfleri


kadirkurt.cjb.net
Superflash5.cjb.net
Flashların Efendisi
Türkçe Programlar


mIRC Kullanımı
Chat Sembolleri
Chat Kuralları
kurt02 Chat


Dvd Hakkında Hersey
Bunları Biliyormusunuz
Linux İle İlgili Hersey
Microsoft
Şifalı Bitkiler
İster İnan İster İnanma
Teknolojide Son Durum
Türkçe Programlar
internettv.gen.tr

QuickBasic'te Bazı İpuçları

Komut Satırında verilen parametreleri nasıl alabilirim.?

Bu iş için COMMAND$ fonksiyonu kullanılır. Bu QB, QB 4.5, PDS, VBDOS ve VB için geçerlidir. Örnek:

KomutSatiri$=COMMAND$

Bu şekilde komut satırını aldığınızda göreceğiniz gibi, büyük harfe çevrilmiş şekilde size vermektedir.

 

QB4.5'un COMMAND$'ı büyük harfe çevirmesini nasıl engellerim.?

Komut satırını almanın yolu, PSP (Program Segment Prefix) 'de &H80'den başlayan kısım programa aktarılan parametreleri içerir. ilk karakter kaç byte'lık komut girildiğini belirtir. Bundan sonra komut satırı gelir. &H0D karakteri ile biter. Bu iş için gerekli rutin ileride yayınlanacaktır. Diğer metod ise QB45'in derlenmesinde kullanılan BCOM45.LIB isimli dosyanın düzeltilmesiyle yapılabilir. Basic komut satırını aldıktan sonra büyük harfe çevirir. Bunu engellerseniz büyük harfe çevrilmeden elinize ulaşır. Bunun için aşağıdaki komutları ve programcığı yazıp çalıştırırsanız bu iş yapılmış olur.

Aşağıdaki komutları çalıştırırsanız BCOM45.LIB dosyasından OSCMD.OBJ dosyasını ayırabilirsiniz. Bunu düzelttikten sonra yeniden BCOM45.LIB dosyasına eklerseniz sorun çözülmüş olur. Önemli bir not:: Bunu yapmadan evvel kesinlikle BCOM45.LIB dosyasının yedeğini alın. Bir not daha: Bu sadece derlendiği zaman işe yarar. QBasic içerisinde iken bu işe yaramaz. Aşağıdaki komutu aynen çalıştırın.

LIB BCOM45 *OSCMD

Aşağıdaki programı yazıp çalıştırırsanız OSCMD.OBJ dosyasını düzeltecektir.

Search$ = ""
FOR X% = 1 TO 10
READ Y%
Search$ = Search$ + CHR$(Y%)
NEXT X%
Replace$ = CHR$(235) + CHR$(8) + STRING$(8, 144)
PRINT "OSCMD.OBJ ";
OPEN "OSCMD.OBJ" FOR BINARY AS 1
X$ = SPACE$(LOF(1))
GET 1, , X$
X% = INSTR(X$, Search$)
IF X% = 0 THEN PRINT "Not Modified.": CLOSE : END
MID$(X$, X%) = Replace$
PUT 1, 1, X$
CLOSE : PRINT "Modified.": END
DATA 60,97,114,6,60,122,119,2,52,32

Bu programı çalıştırdıktan sonra aşağıdaki komutu girin.

LIB BCOM45 -OSCMD +OSCMD,,BCOM45

Şu anda elinizde düzeltilmiş BCOM45.LIB dosyası var.

 

QuickBasic'ten ErrorLevel nasıl döndürürüm.?

BATCH (.BAT) dosya hazırlarken çalıştırdığınız programın sonucunu almak için ErrorLevel kullanılır. Örneğin bir satırlık bir şey girdirildiğini varsayalım. Eğer girmekten vazgeçti ve ESC tuşuna bastı. Durumu BATCH dosyanın anlayabilmesi için çalışan programdan geriye bir değer döndürülmesi gerekir. Örnek bir BATCH dosyasında ErrorLevel şu şekilde kullanılabilir.

Dene.bat:

@Echo off
Rem -- Değer döndürecek program çalışıyor.
VeriAl.exe
Rem -- Değer döndürecek program çalıştı ve sonucu döndü
if ErrorLevel 2 Goto ErrLev2
if ErrorLevel 1 Goto ErrLev1
Echo Geriye değer döndürülmemiş.
Goto End
:ErrLev2:
Echo ErrorLevel 2 Döndü
Goto End
:ErrLev1
Echo ErrorLevel 1 Döndü
:End
Rem ---- Batch Sonu --------

"if ErrorLevel X" komutu eğer ErrorLevel, X'e eşit veya büyük ise doğru döndürür. Ve yanına yazılan komutu işletir. Böyle bir yapı kullanmak çok fazla programın peşpeşe çalıştırılması gerektiğinde herhangi birinde hata olduğunda çıkmak için veya sonuca göre başka işler yapmak gerektiğinde kullanılabilir.

Bu değeri Quick Basic'ten döndürebilmek için aşağıdaki satırı programınıza ekleyin.

DECLARE SUB ExitWithErrLvl ALIAS "_exit" (BYVAL ERRORLEVEL%)

Bunu ekledikten sonra aşağıdaki şekilde programın herhangi bir yerinden DOS ortamına dönebilirsiniz.

ExitWithErrorLvl Oops%

UYARI: Bunu QuickBasic içerisinden çalıştırmayın. Eğer çalıştırırsanız programın kaydedilip kaydedilmeyeceğini bile sormadan çıkacaktır. Yaptığınız değişiklikleri kaybedebilirsiniz. Diğer taraftan XT ve 386'larda kilitlenmeye yol açmakta.

QB ile iki tane LIB dosyasını birden nasıl kullanırım.?

Basitçe kullanamazsınız. Bu sebeple bu LIB dosyalarını birleştirip tek dosya haline getireceksiniz sonra birleştirdiğiniz tek dosyayı yükleyeceksiniz. Örneğin kendi kullandığınız rutinleri bir LIB haline getirdiniz ve QLB dosyasını oluşturdunuz. Sonra bir şey gerekti ve QB.QLB dosyasınıda yüklemeniz gerekti. Kendi oluşturduğunuz LIB dosyası FOO.LIB olsun. Birleştirip MYLIB.LIB dosyasını oluşturalım. Ayrıca birde katalog dosyası MYLIB.CAT oluşturalım.

LIB QB.lib +FOO.LIB,MYLIB.CAT,MYLIB.CAT

Şimdi buradan elde ettiğimiz MYLIB.LIB dosyasından MYLIB.QLB'yi oluşturalım.

LINK /q MYLIB.LIB,MYLIB.QLB,nul,BQLB45 ;

Yukarıdaki satırlarda, LINK, LIB, QB.LIB ve BQLB45.LIB dosyalarının bulunduğunuz dizinde olduğu varsayılmıştır. Eğer bulunduğunuz dizinde yoksa o zaman bu dosyaların bulundukları yerleri de yazmanız gerekiyor.

STRING içindeki rakamı nasıl bir integer değişkene aktarırım.?

En basit yolu :

X% = VAL(TheString$)

Ayrıca eğer random dosya kullanıyor ve rakam saklamaya çalışıyorsanız Önerim MKI$ ve CVI fonksiyonlarını kullanmanızdır. MKI$ fonksiyonu bir integer rakamı string'e çevirir. CVI ise iki karakterlik string'i rakama çevirir. Örnek

Open "Test.dat" for random as #1
Field #1, 2 as SiraNo$,10 as Adi$, 10 as Soyadi$
Let Adi$ = "Nurettin"
Let Soyadi$ = "Arslankaya"
Let SiraNo$ = MKI$(1)
Put #1,1
:
:
Get #1,1
SiraNosu% = CVI(SiraNo$)

Aynı şekilde diğer tipteki rakamlar için

Tip Rakamdan String'e String'ten Rakama Boyu Prefix
INTEGER MKI$ CVI 2 karakter %
LONG MKL$ CVL 4 karakter &
SINGLE MKS$ CVS 4 karakter !
DOUBLE MKD$ CVD 8 karakter #
CURRENCY
(Sadece QB 7.1, VBDOS, VB için)
MKC$ CVC 8 karakter @

FIELD tanımı yapmadan daha kolay Random dosyaya nasıl erişirim.?

Bunun için TYPE belirlemeniz gerekiyor. Örnekle açıklamak gerekirse;

TYPE Personel
SiraNo AS INTEGER
Adi AS STRING*10
Soyadi AS STRING* 10
'Aşağıdaki satır QB 7.1, VBDOS ve VB için geçerlidir.
Adres(3) AS STRING*20
END TYPE

DIM Kayit AS Personel
OPEN "Personel.dat" FOR RANDOM AS #1 LEN=LEN(Kayit)
Kayit.SiraNo = 1
Kayit.Adi = "Nurettin"
Kayit.Soyadi="Arslankaya"
Kayit.Adres(1) = "Balgat"
Kayit.Adres(2) = "Ankara"
Kayit.Adres(3) = "Türkiye"
PUT #1,1,Kayit
:
:
GET #1,1,Kayit

Type tanımında Dizi ancak QB 7.1 ve sonrasında yapılabiliyor. Daha öncesinde böyle bir şey mevcut değil. (QB4.5 veya QBasic)

Gördüğünüz gibi son derece rahat bir şekilde bilgi aktarılıyor ve okunabiliyor.

BINARY şekilde nasıl dosya açar ve nasıl kullanabilirim.?

Binary dosya yapısı QB 4.5 ile gelmiştir. Herhangi bir formata gerek olmaksızın RANDOM olarak dosyaya erişmek için kullanılır. Aşağıda bununla alakalı bir örnek göreceksiniz.

OPEN "Test.dat" FOR BINARY AS #1
'Not: Binary dosyada LEN gereksizdir.
SEEK #1,1
MyText$ = "Nurettin Arslankaya"
TextLen%=LEN(MyText$)
PUT #1,,TextLen%
PUT #1,,MyText$
CLOSE #1

OPEN "Test.dat" FOR BINARY AS #1
SEEK #1,1
GET #1,,TextLen%
MyText$ = SPACE$(TextLen%)
'Eğer içini doldurmazsanız hiç bir şey okumayacaktır.
GET #1,,MyText$
CLOSE #1

Aslına bakarsanız BINARY dosya içerisine ne atarsanız atın olduğu gibi kabul edecektir. Okurken dikkatli olmak gerekiyor. Çünki ne okuduğunuzu bilmeden okursanız hata yapabilirsiniz. O anda okuyacağınız bölgeyi belirlemek için SEEK komutunu kullanmanız gerekiyor. Byte Cinsinden nereyi okuyacağınızı bildirmelisiniz. Seek komutu INPUT / OUTPUT / APPEND türünde açılan sıralı dosyalarda pek işe yaramasada BINARY dosya modunda çokça kullanılır.

Yine BINARY modu kullanılan bir dosya kopyalama programcığı.

BufferLen% = 20000 ' 20.000 karakterlik bilgi bir defada aktarılacak.
OPEN "\COMMAND.COM" FOR BINARY AS #1
OPEN "\COMMAND.BAK" FOR BINARY AS #2
Trail% = (LOF(1) MOD BufferLen%)
Buffer$ = SPACE$(Trail%)
SEEK #1,1
SEEK #2,1
GET #1,,Buffer$
PUT #2,,Buffer$
Buffer$ = SPACE$(BufferLen%)
FOR i=1 TO LOF(1) \ BufferLen%
GET #1,,Buffer$
PUT #2,,Buffer$
NEXT
CLOSE #1,#2

Oldukça basit olan bu program ile bir dosyanın kopyasını çıkartabilirsiniz.

STRING İçindeki boşlukları nasıl kaldırırım.?

String'in baş tarafındaki boşluğu (Boşluk karakteri Chr$(32)'dir) kaldırmak için

X$ = LTRIM$(TheString$)

String'in sonundaki boşlukları kaldırmak için

X$ = RTRIM$(TheString$)

Her iki taraftaki boşlukları birden kaldırmak içinde

X$ = LTRIM$(RTRIM$(TheString$))

Kullanılabilir. Her iki taraftaki boşlukları kaldırmak için VB'te ayrıca TRIM$ fonksiyonu mevcut.

"STRING DESCRIPTORS" nelerdir.?

Eğer QB ile birlikte ASM veya C kullanmayı düşünmüyorsanız buna asla ihtiyaç duymazsınız. String Descriptor Text bilginin başlangıç ve uzunluk bilgilerini verek 4 BYTE uzunluğunda pakettir. ilk kısım DGROUP segmentinde bulunan string'in offset değeridir. ikinci iki byte uzunluğundaki kısım ise uzunluğudur. Her ikiside işaretsiz tam sayı ifade eder. (0-65536 arasında) QB ASCIIZ string kullanmaz. (ASCIIZ; Chr$(0) ile biten string'ler. C ve Pascal'da kullanılır.)

QBASIC ile QuickBasic arasındaki farklar nelerdir.?

Çok fark var. Bazıları :

QBASIC BAS uzantılı dosyaları derleyip EXE yapamaz. QB45 yapabilir.

QBASIC "CALL INTERRUPT" komutuna sahip değildir.QB45 Sahiptir.

QBASIC LIB kullanımını desteklemez. QB45 Destekler.

QB45'in kırpılarak MSDOS 5.0 içine QBASIC olarak eklenmiştir.

QuickBasic 65-80 USD civarında bir fiyatla satılırken QBASIC MSDOS ile beraber gelmektedir.

Genel olarak tüm BAS kodu QBASIC ile de çalışmaktadır. Yalnızca INTERRUPT ve LIB kullanımı kısıtlıdır. Bir şekilde CALL ABSOLUTE ile bazı ASM kodunu çağırabiliyorsunuz ama çok basit değil. Ayrıca yazdığınız program kısa olmak zorunda. Eğer amatörce deneme amaçlı program yazıyorsanız QBASIC işinizi görecektir. Ama eğer EXE yapmanız gerekiyorsa veya ciddi bir programlama işine giriştiyseniz QB45 veya PDS (QuickBasic 7.1) şiddetle önerilir. Önerilebilecek ciddi program yazılabilecek paketler ise PowerBasic ve Visual Basic For DOS'tur. Bu paketler gerçekten çok iyi ve QB45 üstüne ekstra komutlar getiriyorlar. Fakat QB45 ile geriye dönük bir uyumlulukları yok.

HEX sayıları nasıl Desimal Sayılara ve Desimal Sayıları nasıl HEX formatına dönüştürebilirim.?

HEX formatta karakter ifadeyi integer'a dönüştürmek için

TheString$="6B"
X%=VAL("&H"+TheString$)

ve Desimal sayıyı HEX'e çevirmek için

X$=HEX$(TheInteger%)

komutları kullanılabilir.

QUICK BASIC ile sistemi nasıl boot ettirebilirim.?

Aşağıdaki basit kod bu işi yapmaktadır.

SUB WarmBoot
DEF SEG = 0
POKE &h473, &h12
POKE &h472, &h34
DEF SEG = &hFFFF
CALL ABSOLUTE(0)
END SUB

SUB ColdBoot
DEF SEG = &hFFFF
CALL ABSOLUTE(0)
END SUB

Warm Boot sanki CTRL-ALT-DEL tuşlarına basılmış gibi sistemi start ettirir. Cold Boot ise sistemi Reset tuşuna basılmış gibi start ettirir.

Lütfen biri bana Inkey$ fonksiyonunun nasıl çalıştığını göstersin.?

Inkey komutu basitçe klavyeyi kontrol eder. Eğer herhangi bir tuşa basılmışsa kodunu döndürür. Eğer herhangi bir tuşa basılmamışsa o zaman NULL string döndürür. Kullanmanın bir kaç yolu var.

İş yapılırken arada kontrol etmek.

For x=1 to 1000
;burada kodda ne yapıyorsanız onu yapıyorsunuz.
if inkey$=chr$(27) then exit for
next x

Diğeri klavyeden bir şey girilene kadar beklemektir.

Function GetKey$
do:X$=Inkey$:loop while X$=""
GetKey$=X$
End Function

Aşağıda girilen ifadede kelimelerin ilk harflerini büyüten ve Enter tuşu ile işlemi bitiren bir program parçası mevcuttur.

Function GetKeyCap$
Toggle%=False
Stuff$=""
Do
X$=Inkey$
If X$=CHR$(13) then exit do 'Kullanıcı Enter Tuşuna Basmıştır.
If Toggle% then X$=Lcase$(X$) else X$=Ucase$(X$)
Stuff$=Stuff$+X$
Toggle%=( X$<>" ") 'Boşlukmu.?
Loop

GetKeyCap$=Stuff$

End Function

ARCSIN ve ARCCOS fonksiyonlarını nasıl hesaplayabilirim.?

ArcSin ve ArcCos fonksiyonları diğer fonksiyonlardan türetilebilir. Basitçe

CONST PI=3.141593
ARCSIN(A) = ATN(A / SQR(-A * A+1))
ARCCOS(A) = PI / 2 - ATN(A / SQR(-A * A+1))

şeklinde tanımlayabilirsiniz. Eğer program içerisinde doğrudan kullanmak istiyorsanız;

Function ARCSIN# (A#)
ARCSIN# = ATN(A# / SQR(-A# * A#+1#))
end Function

Function ARCCOS# (A#)
ARCCOS# = PI / 2# - ATN(A# / SQR(-A# * A#+1#))
end Function

komutlarını yazabilirsiniz.

AND, OR ve XOR komutları nedir, ne işe yarar.?

AND, OR ve XOR matematiksel fonksiyonlar olup, karşılaştırma amaçlı olarak kullanılır.

Bu fonksiyonlar (BIT BIT çalışırlar.)

AND OR XOR
----------- ----------- -----------
0 AND 0 = 0 0 OR 0 = 0 0 XOR 0 = 0
1 AND 0 = 0 1 OR 0 = 1 1 XOR 0 = 1
0 AND 1 = 0 0 OR 1 = 1 0 XOR 1 = 1
1 AND 1 = 1 1 OR 1 = 1 1 XOR 1 = 0

15=1111, 7=0111, 6=0110, 2=0010, 10=1010
Buradan yola çıkarak 15 AND 7 = 7, 6 OR 2 = 6, 10 XOR 10 = 0

The comparitive functions are like this:
AND = "BU ve ŞU"
OR = "BU veya ŞU"
XOR = "BU veya ŞU ama İkisi Birden Değil."

If (5 > 1) AND (6 < 10 ) then bir şeyler bir şeyler.
Eğer 5, 1'den büyükse ve 6, 10'dan küçükse..

Komut satırında gelen parametreleri nasıl ayırırım..?

Aşağıdaki rutini kullanarak bu işi yapabilirsiniz. Bu rutin gelen parametreleri Arg$ dizini içerisine açmaktadır. Ayraç olarak boşluk kullanılmaktadır.

DIM SHARED arg$(20) 'En fazla 20 arguman tanımlanmıştır. Programınıza göre değiştirebilirsiniz.
'Bir string hazırlayıp bunu ayrıalım.
Parametre$="Bu ArgSplit Rutini için bir testtir."
KelimeSay%=ArgSplit%(Parametre$)
For x%=0 to KelimeSay%
Print arg$(x%)
Next x%
SUB ArgSplit%(Cline$)
I= 1: arg = LBOUND(arg$): inword = -1
WHILE I <= LENGTH
ch$ = MID$(cline$, I, 1)
IF ch$ <> " " THEN
IF NOT inword THEN inword = -1
arg$(arg) = arg$(arg) + ch$
ELSEIF inword THEN
arg = arg + 1
inword = 0
END IF
I = I + 1
WEND
ArgSplit% = arg
END SUB
 

    
Apache server
Fdisk Nasıl Atılır
Windows Pufleri
İnternet Exp  Puf.
Overlock Nasıl Yapılır?
Proxy Adresleri
Regedit İpucları
Trojan Portları
Virus Sozlugu
Windows İpucları  
Format Nasıl Atılır
Bilgisayar Püfleri
Sistem BIOS Ayarları  
Driver Güncelleme
Anakart BIOS Kodları
Donanım Firmaları 
Dos komutları
Fax çekme

Quick basic

Modemler
İşletim Sistemi
Ağınız Neden Yavaş
Virüs Temizleme


 
Doganın Gizemi
Güneş Batımı
Nemrut
Gül
Dolunay
Sonbahar Yaprakları
Buz Adam
Yunuslar
Animasyon Harikası 1
Animasyon Harikası 2
Hayvanlar Alemi : Fil
Hayvanlar Alemi : Kuş
Araba 1
Araba 2
XP Power Wallpaper
Denizin Coskusu
Denizin Coskusu 2
Yüzüklerin Efendisi
Lego Wallpaper
Doganın Güzellikleri
Vampir
Çocuklar İçin
Adana
Orman


Logo transferi
Nokia melodileri
Ericsson melodileri
Siemens melodileri
Panasonic melodileri
Ascıı Sms
Cep hileleri
Radyasyon oranları
Telekom tarifeleri 
Türk telekom fatura
Komik hazır sms
Sevgi sözlü hazır sms


A'dan Z'ye Oyun hileleri 
Online oyun
Oyun Tanıtımları
Download oyunlar


Komik Sözler
Reha muhtar
PC espirileri

Öğrencinin hava durumu
Öğrenci Duası
Bilmeceler

Komik sesler
Türk film hataları
Yabancı film hataları
Ekran Koruyucular
Dizi hataları
İster İnan İster İnanma


Webmaster
Mail

Hosted by www.Geocities.ws

1