F # - Temel G / Ç

Temel Giriş Çıkışı şunları içerir:

  • Konsoldan okuma ve konsola yazma.
  • Dosyadan okuma ve dosyaya yazma.

Core.Printf Modülü

Konsola yazmak için printf ve printfn işlevlerini kullandık. Bu bölümde, ayrıntılara bakacağız.Printf F # modülü.

Yukarıdaki işlevlerin yanı sıra , F # Core.Printf modülünün,% işaretlerini yer tutucu olarak kullanarak yazdırma ve biçimlendirme için çeşitli başka yöntemleri vardır. Aşağıdaki tablo, kısa açıklamalı yöntemleri göstermektedir -

Değer Açıklama
bprintf: StringBuilder → BuilderFormat <'T> →' T Bir StringBuilder'a yazdırır.
eprintf: TextWriterFormat <'T> →' T Biçimlendirilmiş çıktıyı stderr olarak yazdırır.
eprintfn: TextWriterFormat <'T> →' T Biçimlendirilmiş çıktıyı bir satırsonu ekleyerek stderr'e yazdırır.
failwithf: StringFormat <'T,' Result> → 'T Bir dizge arabelleğine yazdırır ve verilen sonuçla bir istisna oluşturur.
fprintf: TextWriter → TextWriterFormat <'T> →' T Bir metin yazarına yazdırır.
fprintfn: TextWriter → TextWriterFormat <'T> →' T Bir yeni satır ekleyerek bir metin yazarına yazdırır.
kbprintf: (birim → 'Sonuç) → StringBuilder → BuilderFormat <' T, 'Sonuç> →' T Bprintf gibi, ancak sonucu oluşturmak için belirtilen işlevi çağırır.
kfprintf: (birim → 'Sonuç) → TextWriter → TextWriterFormat <' T, 'Result> →' T Fprintf gibi, ancak sonucu oluşturmak için belirtilen işlevi çağırır.
kprintf: (string → 'Sonuç) → StringFormat <' T, 'Sonuç> →' T Printf gibi, ancak sonucu oluşturmak için belirtilen işlevi çağırır. Örneğin, bunlar, tüm çıktı kanala girildikten sonra, ancak daha önce değil girildikten sonra baskı işleminin zorlanmasına izin verir.
ksprintf: (string → 'Sonuç) → StringFormat <' T, 'Sonuç> →' T Sprintf gibi, ancak sonucu oluşturmak için belirtilen işlevi çağırır.
printf: TextWriterFormat <'T> →' T Biçimlendirilmiş çıktıyı standart çıktıya yazdırır.
printfn: TextWriterFormat <'T> →' T Biçimlendirilmiş çıktıyı standart çıktıya bir satırsonu ekleyerek yazdırır.
sprintf: StringFormat <'T> →' T Dahili bir dize tamponu kullanarak bir dizeye yazdırır ve sonucu bir dize olarak döndürür.

Biçim Özellikleri

Format spesifikasyonları, programcıların ihtiyacına göre girişi veya çıkışı formatlamak için kullanılır.

Bunlar, biçim yer tutucularını gösteren% işaretli dizelerdir.

Bir Biçim yer tutucusunun sözdizimi -

%[flags][width][.precision][type]

type olarak yorumlanır -

Tür Açıklama
% b Biçimler a bool, biçimlendirilmiş true veya false.
% c Bir karakteri biçimlendirir.
% s Biçimler a string, herhangi bir kaçış karakterini yorumlamadan içeriği olarak biçimlendirilir.
% d,% i Ondalık tamsayı olarak biçimlendirilmiş herhangi bir temel tamsayı türünü biçimlendirir, temel tamsayı türü işaretliyse imzalanır.
% u İşaretsiz ondalık tamsayı olarak biçimlendirilmiş herhangi bir temel tamsayı türünü biçimlendirir.
% x A'dan f'ye kadar küçük harfleri kullanarak, işaretsiz onaltılık tamsayı olarak biçimlendirilmiş herhangi bir temel tamsayı türünü biçimlendirir.
% X A'dan F'ye kadar büyük harfleri kullanarak, işaretsiz onaltılık tam sayı olarak biçimlendirilmiş herhangi bir temel tam sayı türünü biçimlendirir.
İşaretsiz sekizlik bir tamsayı olarak biçimlendirilmiş herhangi bir temel tam sayı türünü biçimlendirir.
% e,% E,% f,% F,% g,% G Herhangi bir temel kayan nokta türünü biçimlendirir (float, float32) C-stili kayan nokta formatı spesifikasyonları kullanılarak formatlanmıştır.
% e,% E [-] d.dddde [işaret] ddd biçiminde işaretli bir değeri biçimlendirir; burada d tek bir ondalık basamaktır, gggd bir veya daha fazla ondalık basamaktır, ddd tam olarak üç ondalık basamaktır ve işaret + veya --'dir.
% f Gggd'nin bir veya daha fazla ondalık basamak olduğu [-] gddd.dddd biçimine sahip işaretli bir değeri biçimlendirir. Ondalık virgülden önceki hane sayısı, sayının büyüklüğüne bağlıdır ve ondalık noktadan sonraki hane sayısı istenen hassasiyete bağlıdır.
%İyi oyun Verilen değer ve hassasiyet için hangisi daha kompakt ise, f veya e biçiminde yazdırılan işaretli bir değeri biçimlendirir.
% M Ondalık bir değer biçimlendirir.
Nesneyi kutulayarak ve nesneyi kullanarak yazdırılan herhangi bir değeri biçimlendirir. ToString yöntem.
% A,% + A Varsayılan düzen ayarlarıyla yazdırılan herhangi bir değeri biçimlendirir. Ayrımcı sendikaların yapısını dahili ve özel temsillerle yazdırmak için% + A kullanın.
% a

Genel bir biçim belirticisi, iki bağımsız değişken gerektirir. İlk bağımsız değişken, iki bağımsız değişkeni kabul eden bir işlevdir: birincisi, verilen biçimlendirme işlevi için uygun türde bir bağlam parametresi (örneğin, bir TextWriter) ve ikincisi, yazdırılacak ve uygun metni çıkaran veya döndüren bir değer.

İkinci bağımsız değişken, yazdırılacak belirli değerdir.

% t Genel bir biçim belirticisi, bir bağımsız değişken gerektirir: Verilen biçimlendirme işlevi (aTextWriter) için uygun türde bir bağlam parametresini kabul eden ve uygun metni çıkaran veya döndüren bir işlev. Temel tam sayı türleribyte, sbyte, int16, uint16, int32, uint32, int64, uint64, nativeint, ve unativeint. Temel kayan nokta türleri float ve float32.

widthisteğe bağlı bir parametredir. Sonucun minimum genişliğini gösteren bir tamsayıdır. Örneğin,% 5d, en az 5 karakter boşluk içeren bir tamsayı yazdırır.

Geçerli flags aşağıdaki tabloda açıklanmaktadır -

Değer Açıklama
0 Gerekli genişliği oluşturmak için boşluk yerine sıfır eklemeyi belirtir.
- Sonucun belirtilen genişlik içinde sola yaslanacağını belirtir.
+ Sayı pozitifse bir + karakteri ekleneceğini belirtir (negatif sayılar için bir - işaretiyle eşleşmek için).
' ' (Uzay) Sayı pozitifse fazladan boşluk ekleneceğini belirtir (negatif sayılar için bir - işaretiyle eşleşmek için).
# Geçersiz.

Misal

printf "Hello "
printf "World"
printfn ""
printfn "Hello "
printfn "World"
printf "Hi, I'm %s and I'm a %s" "Rohit" "Medical Student"

printfn "d: %f" 212.098f
printfn "e: %f" 504.768f

printfn "x: %g" 212.098f
printfn "y: %g" 504.768f

printfn "x: %e" 212.098f
printfn "y: %e" 504.768f
printfn "True: %b" true

Programı derleyip çalıştırdığınızda, aşağıdaki çıktıyı verir -

Hello World
Hello
World
Hi, I'm Rohit and I'm a Medical Studentd: 212.098000
e: 504.768000
x: 212.098
y: 504.768
x: 2.120980e+002
y: 5.047680e+002
True: true

Konsol Sınıfı

Bu sınıf, .NET çerçevesinin bir parçasıdır. Konsol uygulamaları için standart girdi, çıktı ve hata akışlarını temsil eder.

Konsoldan okumak ve konsola yazmak için çeşitli yöntemler sağlar. Aşağıdaki tablo yöntemleri göstermektedir -

Yöntem Açıklama
Bip () Konsol hoparlöründen bir bip sesini çalar.
Bip (Int32, Int32) Konsol hoparlörü üzerinden belirli bir frekans ve süreye sahip bir bip sesini çalar.
Açık Konsol arabelleğini ve ilgili konsol penceresini ekran bilgilerinden temizler.
MoveBufferArea (Int32, Int32, Int32, Int32, Int32, Int32) Ekran arabelleğinin belirli bir kaynak alanını belirli bir hedef alana kopyalar.
MoveBufferArea (Int32, Int32, Int32, Int32, Int32, Int32, Char, ConsoleColor, ConsoleColor) Ekran arabelleğinin belirli bir kaynak alanını belirli bir hedef alana kopyalar.
OpenStandardError () Standart hata akışını alır.
OpenStandardError (Int32) Belirtilen bir arabellek boyutuna ayarlanmış standart hata akışını alır.
OpenStandardInput () Standart giriş akışını alır.
OpenStandardInput (Int32) Belirli bir arabellek boyutuna ayarlanmış standart giriş akışını alır.
OpenStandardOutput () Standart çıktı akışını alır.
OpenStandardOutput (Int32) Belirtilen arabellek boyutuna ayarlanmış standart çıktı akışını alır.
Okuyun Standart giriş akışından sonraki karakteri okur.
Anahtar okuma() Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır. Basılan tuş konsol penceresinde görüntülenir.
ReadKey (Boolean) Kullanıcı tarafından basılan bir sonraki karakteri veya işlev tuşunu alır. Basılan tuş isteğe bağlı olarak konsol penceresinde görüntülenir.
ReadLine Standart giriş akışından sonraki karakter satırını okur.
ResetColor Ön plan ve arka plan konsol renklerini varsayılan değerlerine ayarlar.
SetBufferSize Ekran tampon alanının yüksekliğini ve genişliğini belirtilen değerlere ayarlar.
SetCursorPosition İmlecin konumunu ayarlar.
SetError Error özelliğini belirtilen TextWriter nesnesine ayarlar .
SetIn In özelliğini belirtilen TextReader nesnesine ayarlar .
Yola çıkmak Out özelliğini belirtilen TextWriter nesnesine ayarlar .
SetWindowPosition Konsol penceresinin konumunu ekran ara belleğine göre ayarlar.
SetWindowSize Konsol penceresinin yüksekliğini ve genişliğini belirtilen değerlere ayarlar.
Yaz (Boole) Belirtilen Boolean değerinin metin gösterimini standart çıkış akışına yazar.
Yaz (Char) Belirtilen Unicode karakter değerini standart çıkış akışına yazar.
Yaz (Char []) Belirtilen Unicode karakter dizisini standart çıkış akışına yazar.
Yaz (Ondalık) Belirtilen Decimal değerinin metin gösterimini standart çıkış akışına yazar.
Yaz (Çift) Belirtilen çift duyarlıklı kayan nokta değerinin metin gösterimini standart çıkış akışına yazar.
Yaz (Int32) Belirtilen 32 bitlik işaretli tamsayı değerinin metin gösterimini standart çıkış akışına yazar.
Yaz (Int64) Belirtilen 64 bitlik işaretli tamsayı değerinin metin gösterimini standart çıkış akışına yazar.
Yaz (Nesne) Belirtilen nesnenin metin gösterimini standart çıktı akışına yazar.
Yaz (Tek) Belirtilen tek duyarlıklı kayan noktalı değerin metin gösterimini standart çıkış akışına yazar.
Yaz (Dize) Belirtilen dize değerini standart çıkış akışına yazar.
Yaz (UInt32) Belirtilen 32 bitlik işaretsiz tamsayı değerinin metin gösterimini standart çıkış akışına yazar.
Yaz (UInt64) Belirtilen 64 bitlik işaretsiz tamsayı değerinin metin gösterimini standart çıkış akışına yazar.
Yaz (Dize, Nesne) Belirtilen biçim bilgilerini kullanarak, belirtilen nesnenin metin gösterimini standart çıktı akışına yazar.
Yaz (Dize, Nesne []) Belirtilen biçim bilgilerini kullanarak, belirtilen nesne dizisinin metin temsilini standart çıktı akışına yazar.
Yaz (Karakter [], Int32, Int32) Unicode karakterlerinin belirtilen alt dizisini standart çıkış akışına yazar.
Yaz (Dize, Nesne, Nesne) Belirtilen biçim bilgilerini kullanarak, belirtilen nesnelerin metin temsilini standart çıktı akışına yazar.
Yaz (Dize, Nesne, Nesne, Nesne) Belirtilen biçim bilgilerini kullanarak, belirtilen nesnelerin metin temsilini standart çıktı akışına yazar.
Yaz (Dize, Nesne, Nesne, Nesne, Nesne) Belirtilen biçim bilgilerini kullanarak, belirtilen nesnelerin ve değişken uzunluklu parametre listesinin metin gösterimini standart çıktı akışına yazar.
Yazı çizgisi() Geçerli satır sonlandırıcıyı standart çıkış akışına yazar.
WriteLine (Boolean) Belirtilen Boolean değerinin metin gösterimini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Karakter) Belirtilen Unicode karakterini ve ardından geçerli satır Sonlandırıcı değerini standart çıkış akışına yazar.
WriteLine (Karakter []) Belirtilen Unicode karakter dizisini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Ondalık) Belirtilen Ondalık değerin metin gösterimini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Çift) Belirtilen çift duyarlıklı kayan nokta değerinin metin gösterimini, ardından geçerli satır Sonlandırıcıyı standart çıkış akışına yazar.
WriteLine (Int32) Belirtilen 32 bitlik işaretli tamsayı değerinin metin gösterimini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Int64) Belirtilen 64 bitlik işaretli tamsayı değerinin metin gösterimini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Nesne) Belirtilen nesnenin metin temsilini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Tek) Belirtilen tek duyarlıklı kayan nokta değerinin metin temsilini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Dize) Belirtilen dize değerini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (UInt32) Belirtilen 32 bitlik işaretsiz tamsayı değerinin metin gösterimini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (UInt64) Belirtilen 64 bitlik işaretsiz tamsayı değerinin metin gösterimini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Dize, Nesne) Belirtilen biçim bilgilerini kullanarak belirtilen nesnenin metin gösterimini ve ardından geçerli satır Sonlandırıcıyı standart çıkış akışına yazar.
WriteLine (Dize, Nesne []) Belirtilen biçim bilgilerini kullanarak, belirtilen nesne dizisinin metin gösterimini, ardından geçerli satır Sonlandırıcı tarafından standart çıkış akışına yazar.
WriteLine (Karakter [], Int32, Int32) Belirtilen Unicode karakter alt dizisini ve ardından geçerli satır Sonlandırıcıyı standart çıkış akışına yazar.
WriteLine (Dize, Nesne, Nesne) Belirtilen biçim bilgilerini kullanarak belirtilen nesnelerin metin gösterimini ve ardından geçerli satır Sonlandırıcıyı standart çıkış akışına yazar.
WriteLine (Dize, Nesne, Nesne, Nesne) Belirtilen biçim bilgilerini kullanarak belirtilen nesnelerin metin gösterimini ve ardından geçerli satır Sonlandırıcıyı standart çıkış akışına yazar.
WriteLine (Dize, Nesne, Nesne, Nesne, Nesne) Belirtilen biçim bilgilerini kullanarak, belirtilen nesnelerin ve değişken uzunluklu parametre listesinin metin gösterimini, ardından geçerli satır Sonlandırıcıyı standart çıkış akışına yazar.

Aşağıdaki örnek konsoldan okumayı ve konsola yazmayı göstermektedir -

Misal

open System
let main() =
   Console.Write("What's your name? ")
   let name = Console.ReadLine()
   Console.Write("Hello, {0}\n", name)
   Console.WriteLine(System.String.Format("Big Greetings from {0} and {1}", "TutorialsPoint", "Absoulte Classes"))
   Console.WriteLine(System.String.Format("|{0:yyyy-MMM-dd}|", System.DateTime.Now))
main()

Programı derleyip çalıştırdığınızda, aşağıdaki çıktıyı verir -

What's your name? Kabir
Hello, Kabir
Big Greetings from TutorialsPoint and Absoulte Classes
|2015-Jan-05|

System.IO Ad Alanı

System.IO ad alanı, temel G / Ç gerçekleştirmek için çeşitli yararlı sınıflar içerir.

Dosyaların ve veri akışlarının okunmasına ve yazılmasına izin veren türleri veya sınıfları ve temel dosya ve dizin desteği sağlayan türleri içerir.

Dosya sistemiyle çalışmak için yararlı sınıflar -

  • System.IO.File sınıfı, dosyaları oluşturmak, eklemek ve silmek için kullanılır.
  • System.IO.Directory sınıfı, dizinleri oluşturmak, taşımak ve silmek için kullanılır.
  • System.IO.Path sınıfı, dosya yollarını temsil eden dizeler üzerinde işlemler gerçekleştirir.
  • System.IO.FileSystemWatcher sınıfı, kullanıcıların değişiklikler için bir dizini dinlemesine izin verir.

Akışlarla çalışmak için yararlı sınıflar (bayt dizisi) -

  • System.IO.StreamReader sınıfı, bir akıştan karakterleri okumak için kullanılır.
  • System.IO.StreamWriter sınıfı, karakterleri bir akışa yazmak için kullanılır.
  • System.IO.MemoryStream sınıfı, bellek içi bayt akışı oluşturur.

Aşağıdaki tablo, kısa bir açıklama ile birlikte ad alanında sağlanan tüm sınıfları gösterir -

Sınıf Açıklama
BinaryReader İlkel veri türlerini belirli bir kodlamada ikili değerler olarak okur.
BinaryWriter İlkel türleri bir akışa ikili olarak yazar ve belirli bir kodlamada dizeleri yazmayı destekler.
Arabelleğe Alınmış Akış Başka bir akıştaki işlemleri okumak ve yazmak için arabelleğe alma katmanı ekler.
Rehber Dizinler ve alt dizinler aracılığıyla oluşturma, taşıma ve numaralandırma için statik yöntemleri gösterir.
DirectoryInfo Dizinler ve alt dizinler aracılığıyla oluşturma, taşıma ve numaralandırma için örnek yöntemlerini gösterir.
DirectoryNotFoundException Bir dosyanın veya dizinin bir parçası bulunamadığında ortaya çıkan istisna.
DriveInfo Bir sürücüdeki bilgilere erişim sağlar.
DriveNotFoundException Mevcut olmayan bir sürücüye veya paylaşıma erişmeye çalışırken ortaya çıkan istisna.
EndOfStreamException Bir akışın sonunu geçmeye çalışıldığında okuma sırasında ortaya çıkan istisna.
ErrorEventArgs FileSystemWatcher.Error olayı için veri sağlar.
Dosya Tek bir dosyanın oluşturulması, kopyalanması, silinmesi, taşınması ve açılması için statik yöntemler sağlar ve FileStream nesnelerinin oluşturulmasına yardımcı olur.
FileFormatException Belirli bir dosya biçimi belirtimine uyması beklenen bir girdi dosyası veya veri akışı hatalı biçimlendirildiğinde ortaya çıkan istisna.
FileInfo Dosyaların oluşturulması, kopyalanması, silinmesi, taşınması ve açılması için özellikler ve örnek yöntemleri sağlar ve FileStream nesnelerinin oluşturulmasına yardımcı olur.
FileLoadException Yönetilen bir derleme bulunduğunda ancak yüklenemediğinde atılan istisna.
FileNotFoundException Diskte bulunmayan bir dosyaya erişim girişimi başarısız olduğunda ortaya çıkan istisna.
Dosya akışı Hem zaman uyumlu hem de zaman uyumsuz okuma ve yazma işlemlerini destekleyen bir dosya etrafında bir Akış gösterir.
FileSystemEventArgs Dizin olayları için veri sağlar - Değiştirildi, Oluşturuldu, Silindi.
FileSystemInfo Hem FileInfo hem de DirectoryInfo nesneleri için temel sınıfı sağlar.
FileSystemWatcher Dosya sistemi değişiklik bildirimlerini dinler ve bir dizin veya bir dizindeki dosya değiştiğinde olayları başlatır.
InternalBufferOverflowException Dahili arabellek taştığında atılan istisna.
InvalidDataException Bir veri akışı geçersiz formatta olduğunda ortaya çıkan istisna.
IODescriptionAttribute Görsel tasarımcıların bir olaya, genişleticiye veya özelliğe referans verirken görüntüleyebileceği açıklamayı ayarlar.
IOException Bir G / Ç hatası oluştuğunda ortaya çıkan istisna.
MemoryStream Yedek deposu bellek olan bir akış oluşturur.
Yol Dosya veya dizin yolu bilgilerini içeren String örneklerinde işlemler gerçekleştirir. Bu işlemler, platformlar arası bir şekilde gerçekleştirilir.
PathTooLongException Bir yol veya dosya adı, sistem tarafından tanımlanan maksimum uzunluktan daha uzun olduğunda ortaya çıkan istisna.
PipeException Adlandırılmış bir kanal içinde bir hata meydana geldiğinde atılır.
RenamedEventArgs Yeniden adlandırılmış olay için veri sağlar.
Akış Bir bayt dizisinin genel bir görünümünü sağlar. Bu soyut bir sınıftır.
StreamReader Bir bayt akışındaki karakterleri belirli bir kodlamada okuyan bir TextReader uygular.
StreamWriter Belirli bir kodlamada bir akışa karakter yazmak için bir TextWriter uygular. Bu tür için .NET Framework kaynak koduna göz atmak için Başvuru Kaynağı'na bakın.
StringReader Bir dizeden okuyan bir TextReader uygular.
StringWriter Bir dizeye bilgi yazmak için bir TextWriter uygular. Bilgiler temel bir StringBuilder'da depolanır.
Metin Okuyucu Sıralı bir karakter dizisini okuyabilen bir okuyucuyu temsil eder.
TextWriter Sıralı bir dizi karakter yazabilen bir yazarı temsil eder. Bu sınıf soyuttur.
Yönetilmeyen Bellek İşlemcisi Yönetilen koddan yönetilmeyen bellek bloklarına rastgele erişim sağlar.
Yönetilmeyen Bellek Akışı Yönetilen koddan yönetilmeyen bellek bloklarına erişim sağlar.
WindowsRuntimeStorageExtensions Windows Mağazası uygulamaları geliştirirken Windows Çalışma Zamanı'ndaki IStorageFile ve IStorageFolder arabirimleri için uzantı yöntemleri içerir.
WindowsRuntimeStreamExtensions Windows Çalışma Zamanı'ndaki akışlar ile Windows Mağazası uygulamaları için .NET'teki yönetilen akışlar arasında dönüştürme yapmak için uzantı yöntemleri içerir.

Misal

Aşağıdaki örnek, test.txt adlı bir dosya oluşturur, oraya bir mesaj yazar, dosyadaki metni okur ve bunu konsola yazdırır.

Note - Bunu yapmak için gereken kod miktarı şaşırtıcı derecede azdır!

open System.IO // Name spaces can be opened just as modules
File.WriteAllText("test.txt", "Hello There\n Welcome to:\n Tutorials Point")
let msg = File.ReadAllText("test.txt")
printfn "%s" msg

Programı derleyip çalıştırdığınızda, aşağıdaki çıktıyı verir -

Hello There
Welcome to:
Tutorials Point