---
title: "RegExp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/perl-ruby/18997-regexp"
topic: "Perl & Ruby"
topic_url: "https://www.webforum.nu/amne/perl-ruby"
author: "RGB"
published: "2000-03-24T17:57:00.000Z"
updated: "2000-03-31T06:37:00.000Z"
replies: 9
views: 436
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/perl-ruby/18997-regexp"
---

# RegExp

## #1 — RGB, 2000-03-24T17:57Z

Kort och gott: 
1\. Jag har en text fil som ska laddas upp på en unix-server.
2\. Med hjälp av ett perlscript ska innehållet i filen läsas in och ändras för att slutligen sparas i en html-fil som ska visas för användaren som laddae upp textfilen i steg 1.

Innehållet i text ser ut så här med den skillnad att att antalet rader i filen inte nödvändigtvis är det samma:

```
;;1;;Namn (P) E_Namn / ;Gävle GK;70;;SCR
;;1;;Namn (P) E_Namn / ;Grönlund GK;70;;SCR
;;3;;Namn  (P) E_Namn / ;Orust GK;71;;SCR
;;3;;Namn  (P) E_Namn / ;Rättviks GK;71;;SCR
;;3;;Namn (P) E_Namn / ;Falsterbo GK;71;;SCR
;;3;;Namn  (P) E_Namn / ;Gävle GK;71;;SCR
;;3;;Namn / ;Härnösands GK;71;;SCR
;;3;;Namn  (P) E_Namn / ;Högbo GK;71;;SCR
;;9;;Namn / ;Falun-Borlänge GK;72;;SCR
;;9;;Namn  (P) E_Namn / ;Högbo GK;72;;SCR
;;11;;Namn  (P) E_Namn / ;Rättviks GK;73;;SCR
;;11;;Namn (P) E_Namn / ;Tortuna GK;73;;SCR
```

Outputen som ska sparas i HTML-filen ska seut så här:

```

<tr><td bgcolor=green>1</td><td bgcolor=green>Namn (P)E_Namn </td><td bgcolor=green>Gävle GK</td><td bgcolor=green>70</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>1</td><td bgcolor=green>Namn (P) E_Namn </td><td bgcolor=green>Grönlund GK</td><td bgcolor=green>70</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>3</td><td bgcolor=green>Namn  (P) E_Namn </td><td bgcolor=green>Orust GK</td><td bgcolor=green>71</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>3</td><td bgcolor=green>Namn  (P) E_Namn </td><td bgcolor=green>Rättviks GK</td><td bgcolor=green>71</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>3</td><td bgcolor=green>Namn (P) E_Namn </td><td bgcolor=green>Falsterbo GK</td><td bgcolor=green>71</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>3</td><td bgcolor=green>Namn  (P) E_Namn </td><td bgcolor=green>Gävle GK</td><td bgcolor=green>71</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>3</td><td bgcolor=green>Namn </td><td bgcolor=green>Härnösands GK</td><td bgcolor=green>71</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>3</td><td bgcolor=green>Namn  (P) E_Namn </td><td bgcolor=green>Högbo GK</td><td bgcolor=green>71</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>9</td><td bgcolor=green>Namn E_Namn </td><td bgcolor=green>Falun-Borlänge GK</td><td bgcolor=green>72</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>9</td><td bgcolor=green>Namn  (P) E_Namn </td><td bgcolor=green>Högbo GK</td><td bgcolor=green>72</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>11</td><td bgcolor=green>Namn  (P) E_Namn </td><td bgcolor=green>Rättviks GK</td><td bgcolor=green>73</td><td bgcolor=green>SCR</td></tr>
<tr><td bgcolor=green>11</td><td bgcolor=green>Namn (P) E_Namn </td><td bgcolor=green>Tortuna GK</td><td bgcolor=green>73</td><td bgcolor=green>SCR</td></tr>
```

Om jag kunde använt mig av ASP så hade det inte varit ngt större problem att lösa det hela men nu så måste jag använda mig av Perl som jag är minst sagt värdelös på kan inte ens grunderna i språket men som jag har förstått så ska det iaf vara överlägset det mesta när det gäller att bearbeta textfiler.
Så jag hoppas att det inte är ngt större problem för något som kan språket att hjälpa mig med mitt lilla problem ;)

Bör väl tilläggas att jag inte är världens höjdare på reguljära uttryck heller :(

//R.G.B

\[Redigerat av RGB den 24 mar 2000\]

Permalänk: https://www.webforum.nu/p/18997

## #2 — Robban, 2000-03-24T19:58Z

Funktionen split() är ju ett utmärkt val i sådana här fall.

\<BLOCKQUOTE\>\<font size="1" face="Verdana, Arial, Helvetica, sans-serif"\>Perl-kod:\<pre\>
\# Läser in textfilen
open INFILE, "\<data.txt" or die "Error: $!";
my @rows = \<INFILE\>;
close INFILE;

\# Skriver ut resultatet
open OUTFILE, "\>result.html" or die "Error: $!";
\# Här skrivs inledande HTML in
map {
my @items = split /;/;
chop $items\[4\];
chop $items\[4\];
chomp $items\[8\];
print \<\<\_EOF\_;
\<tr\>\<td bgcolor=green\>$items\[2\]\</td\>\<td bgcolor=green\>$items\[4\]\</td\>
\<td bgcolor=green\>$items\[5\]\</td\>\<td bgcolor=green\>$items\[6\]\</td\>
\<td bgcolor=green\>$items\[8\]\</td\>\</tr\>
\_EOF\_
} @rows;
\# Här skrivs avslutande HTML in
close OUTFILE;

Permalänk: https://www.webforum.nu/p/340497

## #3 — RGB, 2000-03-29T10:35Z

Tackar :)

//R.G.B

Permalänk: https://www.webforum.nu/p/340498

## #4 — woodi, 2000-03-30T13:22Z

Ovanstående kod fungerar inte för mig.. 
Får följande fel när jag kör koden i konsolen:

syntax error at ./golf.pl line 20, near "@rows
\# Här skrivs avslutande HTML in
    close"
Execution of ./golf.pl aborted due to compilation errors.

Hela koden:

```
#!/usr/bin/perl
# Läser in textfilen
open INFILE, "<data.txt" or die "Error: $!";
my @rows = <INFILE>;
close INFILE;
# Skriver ut resultatet
open OUTFILE, ">golf.htm" or die "Error: $!";
# Här skrivs inledande HTML in
map {
    my @items = split /;/;
    chop $items[4];
    chop $items[4];
    chomp $items[8];
    print <<_EOF_;
<tr bgcolor=green><td>$items[2]</td><td>$items[4]</td>
<td>$items[5]</td><td>$items[6]</td><td>$items[8]</td></tr>
_EOF_
} @rows
# Här skrivs avslutande HTML in
    close OUTFILE;
```

Permalänk: https://www.webforum.nu/p/340499

## #5 — Robban, 2000-03-30T13:33Z

Du saknar ett semikolon efter @rows.

Permalänk: https://www.webforum.nu/p/340500

## #6 — woodi, 2000-03-30T13:47Z

Aha..  Så dumt..  
Men det är något lurt iaf..  Filen golf.htm skapas men den är och förblir tom..  
HTML koden skrivs ut i konsolen men lagras alltså inte i golf.htm..    

Någon som vet vad som är fel!?

Permalänk: https://www.webforum.nu/p/340501

## #7 — Robban, 2000-03-30T17:39Z

Japp, en typo av mig. :r

print \<\<\_EOF\_;

... skall vara ...

print OUTFILE \<\<\_EOF\_;

Permalänk: https://www.webforum.nu/p/340502

## #8 — woodi, 2000-03-30T18:18Z

Är inte riktigt haj på Perl ännu..  :)
 
Om jag vid ett senare tillfälle vill fylla på filen golf.htm med fler rader hur gör jag då!?
Med andra ord, om jag får en ny data.txt med nya data som ska läggas till och jag vill använda mig av samma script..  

Robban 
Tack, det funkar!  ;)

Permalänk: https://www.webforum.nu/p/340503

## #9 — Robban, 2000-03-31T03:58Z

Det bestäms när du öppnar filen. Om du använder vad jag har skrivit:

open OUTFILE, "\>result.html" or die "Error: $!";

... så kommer innehållet i filen att raderas i samband med öppnandet. Om du i stället skriver:

open OUTFILE, "\>\>result.html" or die "Error: $!";

... så kommer det du skriver till den läggas efter det som redan fanns där. Ingen radering sker alltså.

Permalänk: https://www.webforum.nu/p/340504

## #10 — woodi, 2000-03-31T06:37Z

Vad dum jag är!  :r

Permalänk: https://www.webforum.nu/p/340505

---

Tråden på webben: https://www.webforum.nu/amne/perl-ruby/18997-regexp
