Thema Dateien Dienstag, 17.4.2007, 15:31:03 Uhr
unlink() - Dateien löschen in Perl Der Befehl unlink() löscht eine oder mehrere Dateien.
Syntax $result = unlink ( Dateiename );
oder Weiterlesen...
Samstag, 14.4.2007, 00:00:23 Uhr
rename - Dateien und Verzeichnis umbenennen Mit dem Befehl rename können Sie Dateien und Verzeichnisse umbenennen. Der Syntax von rename lautet rename (Altername, Neuername);
Altername gibt die Datei oder das Verzeichnis an, das geändert werden soll, Neuername ist der neue Verzeichnis- bzw. Dateiname. Vorsicht Wenn der erste Parameter eine Datei ist und der zweite Parameter der Name eines anderen Verzeichnisses, wird die Datei in das andere Verzeichnis verschoben. Weiterlesen...
Mittwoch, 11.4.2007, 00:02:03 Uhr
Dateitestoperatoren - Eigenschaften von Verzeichnissen und Dateien feststellen Die so genannten Dateitestoperatoren sind die schnellste und einfachste Methode in Perl, Eigenschaften von Dateien oder Verzeichnissen herauszufinden. Manche Operatoren geben dabei nur true oder false zurück, andere wiederum Zahlen, etwa die Größe einer Datei.
Den Dateitestoperatoren wird ein - vorangestellt, danach folgt der Verzeichnis- bzw. Dateiname. Also zum Beispiel:
$size=-s 'dateiname.txt'; print $size;
|
Weiterlesen...
Samstag, 7.4.2007, 00:09:28 Uhr
seek() - Dateizeiger neu positionieren
Syntax seek(HANDLE,Positionswert,ABSOLUT-RELATIV-VOMENDE);
Der Befehl seek setzt den Dateizeiger eines Dateihandles, das vorher mit open erzeugt wurde, an eine neue, beliebige Stelle. Dazu werden folgende Parameter verwendet: Weiterlesen...
Freitag, 6.4.2007, 00:04:18 Uhr
tell - Die Position eines Dateizeigers ermitteln Der Befehl tell() ermittelt die aktuelle Position eines Dateizeigers, der vorher mit open erzeugt wurde.
Syntax $position=tell(HANDLE);
$position ist die aktuelle Byteposition. Wenn ein Fehler aufgetreten ist, wird ein -1 zurückgegeben. Weiterlesen...
Donnerstag, 5.4.2007, 00:00:24 Uhr
Nochmal Dateien suchen - diesmal auch in Unterverzeichnissen Ich hab ja hier schon ein Script vorgestellt, mit dem man bestimmte Dateien in einem Verzeichnis suchen kann.Und weil ich es grad aktuell gebraucht habe, hier eine Funktion, mit der man bestimmte oder auch alle Dateien in einem Ordner inklusive Unterordner suchen kann.
Aber Vorsicht Wenn man die ganze Platte durchsuchen läßt, kann das schon mal länger dauern...
use strict;
my @dateien=get_all_files('../..',1,'.pl');
print join("\n",@dateien);
################### # Parameter # Startdir ohne abschließendes /, aktuelles Verzeichnis = . # Unterverzeichnisse durchsuchen? 1: ja, 0: nein # Dateitypen in form .txt.htm.html , also direkt hintereinander, aber nur wenn nötig # ansonsten wird alles gezeigt ############################################# sub get_all_files{ my $startdir=shift; my $include_subdirs=shift; my $endings=shift; my %endings=(); $endings=~ s/\s//g; my @endings=split('\.',$endings); shift @endings;
my $endings=0; $startdir=~ s/\/$//;
if (@endings != 0){ $endings=1; # wenn Endungen angegeben foreach (@endings){$endings{$_}=1;} } @endings=();
my @dateien=(); push (my @all_directories,$startdir);
foreach my $akdir(@all_directories){ local *in; opendir (in,$akdir); my @all=readdir(in); closedir in;
foreach my $akdatei (@all){ next if ($akdatei eq '..' || $akdatei eq '.'); if (-d "$akdir/$akdatei") { if ($include_subdirs == 1){ push (@all_directories,"$akdir/$akdatei"); next; } } else { if ($endings==0){ push (@dateien,"$akdir/$akdatei"); } else { my @endung=split('\.',$akdatei); my $endung=$endung[-1]; if ($endings{$endung} == 1){ push (@dateien,"$akdir/$akdatei"); } } } } } return @dateien; }
|
Weiterlesen...
Dienstag, 3.4.2007, 00:03:18 Uhr
getc - Nächstes Zeichen aus Datei lesen Der Befehl getc() Liest ein Zeichen aus einer zuvor geöffneten Datei und positioniert den Dateizeiger um ein Zeichen weiter. getc ist die Abkürzung für get Char(akter), zu deutsch hole (ein) Zeichen.
Syntax $zeichen=getc(HANDLE);
open (my $IN,'<datei.txt') || die "kann datei nicht oeffnen: $!"; while ( !eof($IN) ){ my $zeichen = getc($IN); print $zeichen; } close $IN;
|
Weiterlesen...
Montag, 2.4.2007, 00:01:51 Uhr
read() - Bestimmte Anzahl Zeichen aus Datei einlesen Mit dem Befehl read() können eine bestimmte Anzahl von Zeichen aus einer Datei ab dem aktuellen Datei-Positions-Zeiger eingelesen werden.
Syntax $gelesen=read(DATEIHANDLE,Skalar,Anzahl(,optional: Offset))
Im Erfolgsfall wird die Anzahl der gelesenen Zeichen zurückgegeben, ansonsten eine 0 bei Dateiende und ein undef bei einem Fehler. Weiterlesen...
Sonntag, 1.4.2007, 00:01:11 Uhr
close - Datei schließen in Perl Mit close () schließen Sie eine Datei, die Sie zuvor mit open geöffnet haben.
Syntax close(FILEHANDLE);
Weiterlesen...
Samstag, 31.3.2007, 00:29:39 Uhr
binmode() - Dateien binär behandeln in Perl Mit dem befehl binmode() wird eine Datei in den binären Modus geschaltet. Wozu? Nun, es gibt Betriebssysteme, die unter einem Binärmodus und einem Textmodus unterscheiden. Zu diesen Betriebssysteme gehören unter anderem Dos und Windows, nicht jedoch Unix. Sollte ihr Script also auf einem Unix-System laufen, ist der Befehl binmode eigentlich überflüssig. Da man aber nie weiß, wo das Script letztendlich läuft, muß man ihn aber eben trotzdem im Hinterkopf behalten und ggf. einsetzen.
Und was macht nun binmode()? Also: Verschiedene Dateien, zum Beispiel .gif und .jpg-Bilder oder auch ausführbare Dateien, müssen zum Beispiel unter Dos und Windows im Binärmodus eingelesen werden, da diese Betriebssysteme die Zeichenfolge CR und LF (Carriage Return und Linefeed) automatisch in ein LF (also Linefeed) umwandelt. Dieser Automatismus würde natürlich die Daten unbrauchbar machen. Weiterlesen...
|