Gure programetan sarritan egiten dugu hau, baina zer balio jarriko dugu sBIDEA kostantean:
write(Fitxategiaren izena eman (LIBURUAK adibidez): '); readln(sFitxIzenLiburutegia); sFitxIzenLiburutegia := sBIDEA + sFitxIzenLiburutegia + '.DAT';
Beste modu batez galdeturik: datu-fitxategia non sortzen da?
- HemenGaude direktorio bat sortu ordenadorearen edozein tokitan (mahaigainean adibidez), bere barnean HemenGorde direktorio bat sortu
- HanGorde direktorio bat sortu C:\Dev-Pas direktorioan
Datu-fitxategia non sortzen da? galderari erantzuteko programa bat erakusten da beherago. Zenbakiak gordetzen dituen FitxategiakEtaDirektorioak programa deskriba dezagun urratsez urrats:
- Hasieran uneko direktorioa erakusten da pantailan GetCurrentDirectory funtzioari esker
- Ondoren, datu-fitxategiaren sIzena izena teklatuaren bitartez emango du erabiltzaileaak
- Datu-fitxaregiaren izen osoa eraikitzen da aurretik bidea jarriz eta ostean gehiagarri bat eta luzapena jarriz, bidearen aukerak hauek dira:
- ''
- 'HemenGorde\'
- GetCurrentDir + ''\''
- 'HanGorde\'
- '\Dev-Pas\HanGorde\'
- 'C:\Dev-Pas\HanGorde\'
- 'E:\Dev-Pas\HanGorde\'
- 'E:\'
- Datu-fitxategiaren izen osoa finkaturik bere existentzia aztertzen du programak, eta horren arabera bi bide irekitzen dira:
- Datu-fitxategia ez bada existitzen sortu eta elementuak biltegitzen dira
- Datu-fitxategia existitzen bada elementu berriak gehitzen dira bukaeran
Iturburu-programa konpilatu ondoren FitxategiakEtaDirektorioak.exe programa exekutagarria lortuko dugu eta egikaratzeko bi modu daude: Dev-Pas programazio-ingurune barrutik eta Dev-Pas programazio-ingurunetik kanpo.
Dev-Pas programazio-ingurunetik kanpo
Iturburu-programa konpilatuz FitxategiakEtaDirektorioak.exe programa exekutagarria lortu ondoren, Dev-Pas ingurunetik irten HemenGaude direktoriora joateko eta FitxategiakEtaDirektorioak.exe gainean klik egiteko.
Uneko direktorioa HemenGaude delarik, datu-fitxategiarentzat bide desberdinak aukeratu eta emaitza hauek ikertu:
Bidea | Datu-fitxategia non sortzen da | |
1 | '' | datu-fitxategia HemenGaude direktorioan |
2 | 'HemenGorde\' | datu-fitxategia HemenGorde direktorioan |
3 | GetCurrentDir + '\' | datu-fitxategia HemenGaude direktorioan |
4 | 'HanGorde\' | exekuzio-denborako errorea |
5 | '\Dev-Pas\HanGorde\' | datu-fitxategia HanGorde direktorioan |
6 | 'C:\Dev-Pas\HanGorde\' | datu-fitxategia HanGorde direktorioan |
7 | 'E:\Dev-Pas\HanGorde\' | errorea E: unitatean dauden direktorioen arabera |
8 | 'E:\' | E: unitatearen erroan (E: unitatean diskorik badago) |
Dev-Pas programazio-ingurune barrutik
FitxategiakEtaDirektorioak.pas iturburu-programa konpilatu eta Dev-Pas programazio-ingurunearen menuko Run project aukera hautatu programa exekutatzeko.
Kasu honetan uneko direktorioa C:\Dev-Pas dela jakinik, datu-fitxategiarentzat bide desberdinak aukeratu eta emaitza hauek ikertu:
Bidea | Datu-fitxategia non sortzen da | |
1 | '' | datu-fitxategia C:\Dev-Pas direktorioan |
2 | 'HemenGorde\' | exekuzio-denborako errorea |
3 | GetCurrentDir + '\' | datu-fitxategia C:\Dev-Pas direktorioan |
4 | 'HanGorde\' | datu-fitxategia C:\Dev-Pas\HanGorde direktorioan |
5 | '\Dev-Pas\HanGorde\' | datu-fitxategia C:\Dev-Pas\HanGorde direktorioan |
6 | 'C:\Dev-Pas\HanGorde\' | datu-fitxategia C:\Dev-Pas\HanGorde direktorioan |
7 | 'E:\Dev-Pas\HanGorde\' | errorea E: unitatean dauden direktorioen arabera |
8 | 'E:\' | E: unitatearen erroan (E: unitatean diskorik badago) |
FitxategiakEtaDirektorioak.pas iturburu-programa:
program FitxategiakEtaDirektorioak; uses sysutils; (* GetCurrentDir eta FileExists funtzioek behar dutelako *) type tfFitxategia = file of integer; tsKatea = string[199]; procedure FitxategiaIkusi(sFitxIzen: tsKatea); var f: tfFitxategia; iElementua: integer; begin { uztartu } assign(f, sFitxIzen); reset(f); writeln('"', sFitxIzen, '" fitxategiak ', filesize(f), ' elementu ditu, bere edukia:'); while not eof(f) do begin read(f, iElementua); writeln(iElementua:5); end; writeln('.....................................................................'); writeln; { itxi } close(f); end; procedure FitxategiaSortuEtaBete(sFitxIzen: tsKatea); var f: tfFitxategia; iElementua, i, kopurua: integer; begin { uztartu } assign(f, sFitxIzen); rewrite(f); write('Zenbat elementu nahi dituzu "', sFitxIzen, '" fitxategian? '); readln(kopurua); randomize; { random-aren hazia hasieratu } for i:=1 to kopurua do begin iElementua:=random(10); { 0 eta 9 arteko zenbakia } write(f,iElementua); { fitxategian idatzi eta hurrengo elementura pasa } end; { itxi } close(f); end; procedure FitxategiariElementuakGehitu(sFitxIzen: tsKatea); var f: tfFitxategia; iElementua: integer; cErantz: char; begin { uztartu } assign(f, sFitxIzen); reset(f); seek(f, filesize(f)); repeat write('"', sFitxIzen, '" fitxategian gordetzeko zenbaki bat eman: '); readln(iElementua); write(f, iElementua); write('Datu gehiagorik gorde nahi duzu? (B/E): '); readln(cErantz); cErantz := upcase(cErantz); until cErantz <> 'B'; { itxi } close(f); end; {============================PROGRAMA NAGUSIA============================} var sIzena: tsKatea; cAukera: char; begin writeln; writeln; writeln('Uneko direktorioa: ', GetCurrentDir); writeln; writeln('Lanerako fitxategiaren izena eman ezazu (luzapenik gabe)...'); write('Adibidez, "Datuak" izena: '); readln(sIzena); writeln; writeln; repeat writeln(' "', sIzena, '" fitxategiaren bidea aukeratu:'); writeln(' 1. ""');; writeln(' 2. "HemenGorde\"'); writeln(' 3. GetCurrentDir + "\"'); writeln(' 4. "HanGorde\"'); writeln(' 5. "\Dev-Pas\HanGorde\"'); writeln(' 6. "C:\Dev-Pas\HanGorde\"'); writeln(' 7. "E:\Dev-Pas\HanGorde\"'); writeln(' 8. "E:\"'); writeln; write('Exekuzio-denborako errorea gerta daitekeen arren, bide bat aukeratu: '); readln(cAukera); until (cAukera >= '1') and (cAukera <= '8'); case cAukera of '1': sIzena := '' + sIzena + '_aukera-' + cAukera + '.DAT'; //'1': sIzena := sIzena + '_aukera-' + cAukera + '.DAT'; '2': sIzena := 'HemenGorde\' + sIzena + '_aukera-' + cAukera + '.DAT'; '3': sIzena := GetCurrentDir + '\' + sIzena + '_aukera-' + cAukera + '.DAT'; '4': sIzena := 'HanGorde\' + sIzena + '_aukera-' + cAukera + '.DAT'; '5': sIzena := '\Dev-Pas\HanGorde\' + sIzena + '_aukera-' + cAukera + '.DAT'; '6': sIzena := 'C:\Dev-Pas\HanGorde\' + sIzena + '_aukera-' + cAukera + '.DAT'; '7': sIzena := 'E:\Dev-Pas\HanGorde\' + sIzena + '_aukera-' + cAukera + '.DAT'; '8': sIzena := 'E:\' + sIzena + '_aukera-' + cAukera + '.DAT'; end; writeln; if fileexists(sIzena) then begin writeln('"', sIzena, '" fitxategia existitzen da, lan egin dezagun.'); writeln; FitxategiaIkusi(sIzena); FitxategiariElementuakGehitu(sIzena); FitxategiaIkusi(sIzena); end else begin writeln('"', sIzena, '" fitxategia ez da existitzen, sortuko dugu.'); writeln; FitxategiaSortuEtaBete(sIzena); FitxategiaIkusi(sIzena); end; writeln; write('RETURN sakatu programa bukatzeko'); readln; end.
iruzkinik ez:
Argitaratu iruzkina
Iruzkinen bat idazteko Google-ko kontu bat behar duzu. Iruzkin guztien moderazio-ardura blogeko administratzaileari dagokio.