Lekcja 9 - Podstawy DOS-a

Funkcja: Length





Funkcja ta wyciąga długość zmiennej, np.:

program funkcja_length;
uses crt, dos;
var pascal-center : String;
begin
pascal-center:='to super stronka';
writeln(Lenght(pascal-center));
repeat until keypressed;
end.

Program wyświetli ilość znaków przychowywanych przez zmienną: pascal-center.



Procedury: MkDir, RmDir, GetDir, ChDir, Erase



Procedura MkDir tworzy nowy katalog.
Oto przykład:

program procedura_mkdir;
uses crt, dos;
var sciezka : String;
begin
writeln('Podaj ścieżkę do folderu:');
read(sciezka);
MkDir(sciezka);
writeln('Ok. Thanks');
repeat until keypressed;
end.

Program prosi o podanie lokalizacji przyszłego folderu. Ścieżka (lokalizacja) ta zostaje zapisana w zmiennej: sciezka do późniejszego wykorzystania przez procedurę: MkDir.
Jeżeli uruchomimy program i wpiszemy np.: C:\Doodek zostanie utworony katalog: Doodek. Zamiast podawać ścieżkę możemy napisać samą nazwę katalogu i wtedy zostanie on utworzony w bieżącum katalogu jako podkatalog, ale o tym w procedurze: ChDir
Procedura RmDir czyli Remove Dir (usuń katalog). Aby procedura ta zadziałała poprawnie katalog który usuwamy musi być pusty !!!
Teraz przykład w praktyce:

program usuwanie_katalogu;
uses dos;
var katalog_usuw : String;
begin
writeln('Podaj ścieżkę katalogu, który chcesz usunąć:');
read(katalog_usuw);
RmDir(katalog_usuw);
end.

Procedura GetDir pobiera do jednej zmiennej nazwę bieżącego katalogu na dysku określonym drugą zmienną. Ta druga zmienna przyjmuje wartości:
0 - dysk bieżący
1 - dysk A
2 - dysk B
itd.
Np.:

program proc_getdir;
Uses crt, dos;
Var katalog : string;
begin
GetDir(0,katalog);
WriteLn('Aktualny dysk i katalog : ',katalog);
GetDir(1,katalog);
WriteLn('Aktualny katalog na dysku A : ',katalog);
GetDir(3,katalog);
WriteLn('Aktualny katalog na dysku C : ',katalog);
GetDir(4,katalog);
WriteLn('Aktualny katalog na dysku D : ',katalog);
repat until keypressed;
End.

Na początku możesz trochę nie wiedzieć o co chodzi, ale z biegiem czasu zaczaisz.

Procedura ChDir zmienia aktualny dysk i katalog.
Procedura Erase usuwa dany plik.
Oto przykład zastosowanie procedury Erase:

program procedury;
uses dos
var lokalizacja : String;
         plik : Text;
begin
writeln('Podaj lokalizację pliku, który chcesz usunąć:');
read(lokalizacja);
assign(plik,lokalizacja);
Erase(plik);
end.

Program ten usuwa plik z lokalizacji podanej przez użytkownika.



Biblioteka DOS



Procedura GetDate pobiera aktualną datę systemową. Jej składnia to:
GetDate(var Rok, Miesiac, Dzien, DzienTygodnia:word);
Poszczególne zmienne mogą zawierać wartości:
Rok : 1980 - 2099
Miesiac : 1 - 12
Dzien : 1 - 31
DzienTygodnia - 0 - 6 ( 0 = niedziela, 1 = poniedziałek, ... , 6 = sobota )

Przykładowy program:
Uses Dos;
Const
 dni : array[0..6] of string=('Niedziela','Poniedziałec','Wtorek','Środa','Czwartek','Piątek','Sobota');
var
 rok, mies, dzien, dztyg : word;
Begin
GetDate(rok,mies,dzien,dztyg);
WriteLn('Dziś jest : ',dni[dztyg],' ',dzien,'-',mies,'-',rok);
End.

Wynik tego programu to np.
Dziś jest : Niedziela 10-12-2000

Procedura GetTime podaje aktualny czas systemowy. Składnia:
GetTime(var Godzina, Minuta, Sekunda, SetnaSekundy:word);
I jak zawsze przykład:

Uses Dos;
Var
 godz,min,sek,sek100:word;
Begin
GetTime(godz,min,sek,sek100);
WriteLn('Aktualna Godzina : ',godz,':',min,':',sek,':',sek100);
End.

Jest jeden problem ... nigdzie nie zobaczycie godziny podanej np. w ten sposób: 1:2:3 - czyli pierwsza dwa i trzy sekundy.
Można to zmienić przekształcając program w ten sposób:

Uses Dos;
var
 godz,min,sek,sek100:word;
 sgodz,smin,ssek:string;
Begin
GetTime(godz,min,sek,sek100);
Str(godz,sgodz);
If length(sgodz)=1 then  sgodz:='0'+sgodz;
Str(min,smin);
If  length(smin)=1 then  smin:='0'+smin;
Str(sek,ssek);
If  length(ssek)=1 then  ssek:='0'+ssek;
WriteLn('Aktualna Godzina : ',sgodz,':',smin,':',ssek);
end.

Teraz będzie w porządku, np. 01:02:03 - czyli pierwsza dwa i trzy sekundy.



Niestety muszę się z Wami już pożegnać, bo jest to ostatnia część Kursu Pascala dla początkujących.

Możecie kliknąć mi w banner :) bo uwierzcie mi ... pisanie takiego kursu w HTMLu jest
bardzo męczące :( Przy okazji zajrzyjcie czy na 
mojej stronie 
nie ma nowszego kursu, udoskonalonego. W swoim kursie będę zaczynał od podstaw aż skończę na kursie dla zaawansowanych
Jeżeli chcesz być powiadamiany o zmianach w kursie i na mojej stronie podaj maila i wciśnij przycisk WYŚLIJ





Wróć do strony głównej kursu