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
Darmowy hosting zapewnia PRV.PL