Gure programetan sarritan egiten dugu hau, baina zer balio jarriko dugu sBIDEA kostantean:
1 2 3 | 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | 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.