Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Alerta securitate Fedora Linux 40...

Problemuțe sistem audio ma&#...

Renovare balcon

installation has failed there was...
 Montura polara.....

Sfat inchiriere locuinta unei per...

Sursa stereo -> amplif mono

Dan Blondu vs. Marian Piciu
 Side - Antalya

Nume fetita - international dar c...

A fost lansat MX Linux 23.3

Pompa bazin gradina
 Nici pescarii nu mai sunt ce-au f...

Arici in curte

Telefoane achizitionate de pe OLX

Incalzire pardoseala slim (renova...
 

PERL - Sortare nereusita

- - - - -
  • Please log in to reply
6 replies to this topic

#1
saschart

saschart

    Junior Member

  • Grup: Banned
  • Posts: 230
  • Înscris: 20.09.2002
Pentru sortarea datelor dintr-un tabel in excel am creat in cgi

#####################Sortarea in functie de pret

sub in_functie_de_pret {

$de_la = $form{'de_la'};

$pana_la = $form{'pana_la'};

open (FE, "$database")|| die "not found";
@lines = ;
.............................


foreach (@lines){ ($zona,$suprafata,$descriere,$pret,$ID,$img) = split('[;]',$_);

$from_dig = "$de_la";
$to_dig = "$pana_la";
$dig = "$pret";

if ($from_dig le $dig & $to_dig ge $dig){
.............................





Rezultatul este ca-mi sorteaza corect doar dupa primele doua cifre, zecimalele nu le ia in calcul

#2
djlyon

djlyon

    Active Member

  • Grup: Members
  • Posts: 1,536
  • Înscris: 28.11.2001
Pai le si gt si altele asemanatoare se folosesc pentru comparatie de string-uri, dar tu ai valori integer, si atunci trebuie sa folosesti banalele >, >=, <=, etc.
Cam asta mi-a sarit in ochi prima oara cand m-am uitat pe script.
Sortarea insa eu o fac altfel.

#3
saschart

saschart

    Junior Member

  • Grup: Banned
  • Posts: 230
  • Înscris: 20.09.2002
spune-mi si mie te rog care este varianta ta prin care faci sortarea

#4
djlyon

djlyon

    Active Member

  • Grup: Members
  • Posts: 1,536
  • Înscris: 28.11.2001
@SB = sort{$a->[1] cmp $b->[1]} @SHOWBASE;
Nu se potriveste din prima pentru ce ai tu, dar asta merge sigur pentru ca o folosesc de zi cu zi intr-un script pentru web.

@SHOWBASE e ceva de forma:
nume1`valoare1
nume2`valoare2
nume3`valoare3

In cazul de mai sus, sortarea se face dupa coloana valoare.

#5
saschart

saschart

    Junior Member

  • Grup: Banned
  • Posts: 230
  • Înscris: 20.09.2002
intr-adevar varianta clasica pe care ai dat-o este buna, pentru ca vad ca nu-mi mai incurca rezulatele

multumesc mult

#6
djlyon

djlyon

    Active Member

  • Grup: Members
  • Posts: 1,536
  • Înscris: 28.11.2001
Iar asa "umplu" baza de date SHOWBASE cu valori din fisier:

open(DB,"+<$fisier") || die "eroare";
flock(DB,2);                  # Locking file
seek(DB,0,0);
@DATA = ;
$SIZE = @DATA;

$i = 0;$j = 0;
while ($i <= $SIZE) {
   ($exe,$pro,$catbase,$data) = split(/`/,$DATA[$i]); #`

$SHOWBASE[$j][0] = $nume;
$SHOWBASE[$j][1] = $valoare;
$SHOWBASE[$j][2] = $ceva_a;
$SHOWBASE[$j][3] = $ceva_b;
$j++;
}}
$i++;
  }


Dupa care sortezi cum ti-am aratat mai sus.
Hope it helps and serves your purpose.

#7
djlyon

djlyon

    Active Member

  • Grup: Members
  • Posts: 1,536
  • Înscris: 28.11.2001

Quote

Originally posted by saschart
varianta clasica pe care ai dat-o este buna, pentru ca vad ca nu-mi mai incurca rezulatele
Este doar sort-ul clasic din Perl...

Anunturi

Bun venit pe Forumul Softpedia!

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate