lusis987 Ierakstīts Decembris 11, 2012 Share Ierakstīts Decembris 11, 2012 Nu jau esmu ķēries pie programmēšanas valoda ar nosaukumu - Perl. Šī brīža uzdevums kas jāizpilda: Uzrakstīt skriptu PERLī, kurš nolasa visu datņu nosaukumus komandrindā norādītajā katalogā (ja komandrindā parametra nav, ņem tekošo katalogu) un ieliek tos masīvā. Pēc tam iziet cauri masīvām ar foreach un izvadīt uz ekrāna atsevišķi datnes vārdu un datnes paplašinājumus rindu pa rindai formātā "Nosaukums: ...... Paplašinājums: ......... " sadalīt datnes nosaukumu pašā nosaukumā un paplašinājumā vajag ar regulārajām izteiksmēm. Šobrīd esmu uzrakstījis sākumu, bet jau nestrādā. Pie ceļa ievadīšanas piem ( C:\F ) ( iekš c diska f mape man ir ) Izmet erroru,ka -readdir() attempted on invalid dirhandle IMD Nesaprotu, kāpēc neatrod mapi. Pagaidām vajadzētu atrisināt šo problēmu ps Fails glabājas uz servera, kam piekļūstu izmantojot Putty, ja nu tas kaut ko maina. Link to comment Share on other sites More sharing options...
JDat Decembris 11, 2012 Share Decembris 11, 2012 Google? http://www.google.com/search?q=readdir()&oq=readdir()&sugexp=chrome,mod=10&sourceid=chrome&ie=UTF-8#hl=en&safe=off&tbo=d&sclient=psy-ab&q=readdir()+perl&oq=readdir()+perl&gs_l=serp.3..0i10i30j0i30l3.3184.3962.0.4224.5.5.0.0.0.0.121.351.3j1.4.0.les%3Bcrnk_timediscounta..0.0...1c.1.KheLBKGqAmQ&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.&fp=30ac5f17b29a5ede&bpcl=39650382&biw=927&bih=946 http://perldoc.perl.org/functions/readdir.html http://perlmeme.org/faqs/file_io/directory_listing.html Es to nesauktu par programēšanas valodas apgūšanu, bet gan par domāt negribēšanu un hvz bakstīšanos. 1 Link to comment Share on other sites More sharing options...
lusis987 Decembris 11, 2012 Author Share Decembris 11, 2012 (labots) Pēdējais links no Tevis dotajiem ir vienīgais ko nebiju redzējis. Protams, ka domāšu tālāk kas un kā. Negaidīšu gatavus piemērus. Vajag mājienus, ieteikumus.... Lai nedomātu, ka neko neesmu sācis, tad lūk: #!/usr/bin/perl -w print "Ievadi celu uz direktoriju "; $sourcedir=<>; opendir(IMD, "$sourcedir"); @thefiles= readdir(IMD); print @thefiles; closedir(IMD); Labots Decembris 11, 2012 - lusis987 Link to comment Share on other sites More sharing options...
NewAge Decembris 11, 2012 Share Decembris 11, 2012 Pastāsti kā tu esi iedomājies no Linux atvērt Windows direktoriju? 1 Link to comment Share on other sites More sharing options...
Grisha Decembris 11, 2012 Share Decembris 11, 2012 (labots) Nu jaa, buushu ljoti riebiigs. Saprashana nav vispaar nekaadas autoram.FAils atrodas uz servera, bet gramstaas gar lokaalo failu. Kods nav autora rakstiits, bet parasts paraugs. KAa shii rindinja var izpildiities? $sourcedir=<>; Labots Decembris 11, 2012 - Grisha Link to comment Share on other sites More sharing options...
lusis987 Decembris 11, 2012 Author Share Decembris 11, 2012 Nu, a kā es varu zināt kas tur par mapēm uz servera, lai norādītu ceļu? Kods ir salasīts no visa, ko esmu lasījis un cik esmu sapratis. $sourcedir=<>; Kā es saprtu: $sourcedir - vienkāršs mainīgais <> - ievadīt vērtību, ko piešķir mainīgajam. Kas tur ne tā, lai nestrādātu? Nu, jā varu vēl pielikt chomp, bet diez vai tas kaut ko mainīs. Link to comment Share on other sites More sharing options...
lusis987 Decembris 11, 2012 Author Share Decembris 11, 2012 Kur varētu atrast info par šo - komandrindas parametru apstrāde? Link to comment Share on other sites More sharing options...
lusis987 Decembris 12, 2012 Author Share Decembris 12, 2012 No Tevis dotā linka neredzu neko tādu, ko nebūtu jau izmantojis. Liekas ka bija domāts kaut kasmazliet cits. Link to comment Share on other sites More sharing options...
lusis987 Decembris 12, 2012 Author Share Decembris 12, 2012 Tur jau stāstīts tikai par to, kā dabūt uz ekrāna kaut ko.... Vai kaut kamī neiebraucu? Link to comment Share on other sites More sharing options...
zeds Decembris 13, 2012 Share Decembris 13, 2012 (labots) lusis987: tu neiebrauci. ieleja tev iedeva piemēru komandrindas argumentu saņemšanai un apstrādei. Use $ARGV[n] to display argument. Use $#ARGV to get total number of passed argument to a perl script. kur vēl skaidrāk var uzrakstīt ? Vienīgi - protams to masīvu var izmantot kā gribas , ne tikai izvadei. Labots Decembris 13, 2012 - zeds Link to comment Share on other sites More sharing options...
lusis987 Decembris 13, 2012 Author Share Decembris 13, 2012 (labots) Tātad man ir jāizmanto tas $#ARGV tad kad gribu saņemt to ceļu uz direktoriju? Paskaidro latviski... Mēģināšu manu variantu. Tikko sapratu, ka man nav dotas tiesības līst tur pie kādiem failiem. Spriežu no šī: ls: cannot open directory /root: Permission denied ********@Ubuntu11Stud:~$ ls: cannot open directory /root: Permission denied -bash: ls:: command not found ********@Ubuntu11Stud:~$ sudo su sudo: unable to resolve host Ubuntu11Stud [sudo] password for ********: ******** is not in the sudoers file. This incident will be reported. Tad man jebkurā variantā nekas nedarbosies vai ne? Būs jāparunā ar skolotāju. Labots Decembris 13, 2012 - lusis987 Link to comment Share on other sites More sharing options...
versatile Decembris 13, 2012 Share Decembris 13, 2012 komandrindas parametrs ir šitas, piemēram: ping 127.0.0.1 -n 100 -l 256 kur: ping ir izpildāmais skripts 127.0.0.1 ir nepieciešamais parametrs n un l ir papildus parametri ar vērtībām 100 un 256, attiecīgi Tātad, komandrindas parametrs norāda to, ka Tu uzraksti garu penteri, nospied entr un viss tiek izdarīts, nevis parādās "ievadiet direktoriju"... Link to comment Share on other sites More sharing options...
lusis987 Decembris 13, 2012 Author Share Decembris 13, 2012 (labots) Tad kad tikšu pie skolas neta vada, tad testēšu un skatīšos kas un kā.Kā noskaidroju - jāburas pa savu direktoriju.Vienīgi nevaru iebraukt tajā Perl'ē... Ar kādu komandu to sadalīšanu (bāze un paplašinājums)? Piemēru nevajag tikai funkc. nosaukumu.PapildinātsRedzu ka neviens neko diži man negrib palīdzēt. Esmu izbūries cauri tām regulārajām izteiksmēm un cenšos sadalīt to faila nosaukumu bāzē un paplašinājumā. Šī brīža kods : if ($file =~/ [^[a-zA-Z0-9]+] /) { $base=$1; } Varētu izskaidrot kas tur īsti nav kārtībā? Tā uzreiz iebraukt visās niansēs neesmu sējīgs. Paldies visiem "palīdzētājiem"... Tā kā varētu nebūt vienīgais kas kaut ko tādu mēģina..... Lūk, mans gala rezultāts. #!/usr/bin/perl -w opendir(IMD, $ENV{"HOME"}); @thefiles = readdir(IMD); foreach $file (@thefiles) { $base=''; $ext=''; if ($file =~/^([a-zA-Z0-9]+)\.?([a-zA-Z0-9]+)?/) { $base=$1; $ext=$2; } if ($base) {print "filename: $base";} if ($base and $ext) {print ";\t";} if ($ext) {print "extension: $ext";} if ($base || $ext) {print "\n";} } closedir(IMD); Labots Janvāris 23, 2013 - lusis987 Link to comment Share on other sites More sharing options...
Recommended Posts
Izveido kontu, vai pieraksties esošajā, lai komentētu
Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas
Izveidot jaunu kontu
Piereģistrējies un izveido jaunu kontu, tas būs viegli!
Reģistrēt jaunu kontuPierakstīties
Jums jau ir konts? Pierakstieties tajā šeit!
Pierakstīties tagad!