TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
Perl i problem przy znakach \t \s :( , AwerS 5/10/07 16:25 Chce napisac sobie skrypt ktory bedzie obrabiac mi pliki z textem ktory jest pisany w mc (w mc 1 x TAB = 4 spacje) aby kazde 4 spacjena poczatku liniki dawaly tab'a
-----------------------------------------------------------------------------------------
if($x=~ /^\s/)
{
$CHANGE=0;
#print "Odnaleziono Spacje";
$CHAR_SPAC=++$CHAR_SPAC;
if($x=~ /^\s\s\s\s\s\s\s\s/)
{
print $x;
$x=~ s/^\s\s\s\s/\t\t/;
$CHANGE=1;
print $x;
print " zamiana 8 spacji na tab\n";
}
elsif($x=~ /^\s\s\s\s/)
{
print $x;
$x=~ s/^\s\s\s\s/\t\t/;
$CHANGE=1;
print $x;
print " zamiana 4 spacji na tab\n";
}
elsif($x=~ /^\s\s\s\s/)
{
print $x;
$x=~ s/^\s\s\s\s/\t/;
$CHANGE=1;
print $x;
print " zamiana 3 spacji na tab\n";
}
elsif($x=~ /^\s\s\s/)
{
print $x;
$x=~ s/^\s\s\s/\t/;
$CHANGE=1;
print $x;
print " zamiana 3 spacji na tab\n";
}
elsif($x=~ /^\s\t/)
{
print $x;
$x=~ s/^\s\t/\t/;
$CHANGE=1;
print $x;
print " zamiana 1 spacji na tab\n";
}
-------------------------------------------------------------------------------------
i mam kosmiczny problem gdyz soft uwaza wstawionego TAB'a [\t] za 4 spacje ma ktos jakis pomysl na takie rozwiazanie??AwerS - alo alo , DrLamok 5/10/07 17:16
troche mnie zamotałeś
- co to jest ? kod źródłowy czegoś ?
- są spacje na poczatku linii a mają być taby w ilości 1 tab na 4 spacje ?
- wrzuc gdzies przykladowy plik do przerobienia
pozdr - ok jesli kapuje o co ci biega to masz tu , DrLamok 5/10/07 19:28
napisane na kolanie raz dwa... a perla nie ruszalem od 2-3 lat
skrypt zamienia spacje na poczatku linii na taby
jesli sa 4 spacje to 1 tab
jeśli 8, 12, 16 itd to na odpowiednią liczbe tabów
jeśli jest 5 spacji.. to robi się z tego 1 tab + jedna spacja
jeśli 18 spacji to 4 taby + 2 spacje... itd..
plik wejsciowy testin.txt
plik wyjsciowy testout.txt
===========
#!/usr/bin/perl
$infile = "testin.txt";
$outfile = "testout.txt";
open(OUT,">$outfile") || die "Cannot open $outfile: $!\n";
open(IN,$infile) || die "Cannot open $infile: $!\n";
while (<IN>) {
chomp;
$string = $_;
my $tabcount = 0;
while ((substr $string,0,4) eq ' ') {
$string = (substr $string,4);
$tabcount++;
}
for ($count = $tabcount; $count >= 1; $count--) {print OUT "\t";}
print OUT "$string\n";
}
close(IN);
close(OUT);
============
pozdr- ops board to troche skaszanil... wiec masz jeszcze raz , DrLamok 5/10/07 19:32
tu masz jeszcze raz.. bo board skaszanil kod w jednym miejscu
http://rapidshare.com/...0490309/spacetab.zip.html
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|