Pokaż wyniki 1 do 5 z 5

Temat: [PERL] wczytanie skalarów do tablicy, prosba o pomoc

  1. #1

    Domyślnie [PERL] wczytanie skalarów do tablicy, prosba o pomoc

    Witam,

    To mój pierwszy post, więc proszę o wyrozumiałość.

    Mam tablice np. @tab, zawiera ona elementy, takie jak:

    - nr034,
    - nr056,
    - nr058.

    Chciałby by wyżej wymienione skalary, zostały wepchniete do oddzielnych tablic np.:

    nr034 do tabeli1
    nr056 do tabeli2
    nr058 do tabeli3

    Teraz pytanie, jak to zrobić? Iterować po elementachtabeli można w ten sposób:

    foreach $element (@tab){

    }

    Ale jak zrobić by te skalary zostały wepchnietę do odzdzielnych tablic?

    Proszę o pomoc!

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Widze jakas szkola zaczela prowadzic zajecia z Perla
    Gotowca nie dam ale prosty i logiczny sposob rozwiazania jest banalny - tworzysz tablice tablic, wiedzac ze masz np 21 elementow w @tab i 3 tablice mozesz isc przez numery elementow w @tab i traktowac modulo aby uzyskac numer tablicy (wiersza w tablicy dwuwymiarowej) do ktorego wstawisz wartosc.

    Samo zakodowanie tego mozna zrobic na co najmniej 3-4 sposoby, kazdy dzialajacy i poprawny z logicznego punktu widzenia.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3

    Domyślnie Jeszcze_proszę_trochę_naprowadz

    Np. @tab składa się z 5 elementów, więc:

    $rozmiar_tablicy = @tab;

    teraz tworzę tabelę:

    @tab2 = (1..$rozmiar_tablicy);

    I co dalej?

    mam elementy np:

    nr01
    nr02
    nr03
    nr03
    nr04
    nr05

    Co dalej?

  4. #4

    Domyślnie

    Twoim kolejnym krokiem jest, tak jak napisal kolega TQM, stworzenie tablicy tablic (array of array).

    Kod:
    @tab=('nr01', 'nr01','nr01','nr04');
    my $liczba=@tab;
    @tab2=(0..$liczba);
    
    @nowa_tab=([@tab],[@tab2]);

  5. #5

    Domyślnie Pytanie cz.2

    Potrzebuję pomocy, myśle, myśle i nic.

    Mam ciąg liczb i znaków,np.:

    nr01
    nr02
    nr03
    nr04-05
    nr06
    nr08-10
    nr09
    nr10-15

    Teraz pytanie, chciałem wrzucić elementy z kreskami tj. nr04-05,nr08-10,nr10-15, tak bym mógł wygenerować ciągi liczb od 04 do 05, od 08 do 10, od 10 do 15.
    W celu wygenerowania tabel z przedziału jw., wszystkich odzielnie.


    #!/usr/bin/perl
    #use warnings;
    use File::Remove 'remove';
    use File::Copy;
    use File::Basename;

    #print $0 . "\n";
    $sciezka = dirname("$0"); #wyrzucamy nazwę pliku tworząc ścieżkę, niezależnie od nazwy pliku
    #@files = glob "${0}*.TIF"; - próba globowania-nie kasasować
    print $sciezka;
    print "\n";
    opendir(ROCZNIK, $sciezka); #przeszukanie całego katalogu
    @katalog = grep (!/^\.\.?$/, readdir ROCZNIK);
    closedir(ROCZNIK);
    @numery= ();
    foreach $element (@katalog){
    if ($element =~ /.*\..*/){push (@element, $element)}#nic nie wyświetla w przypadku plików
    else {push (@numery, $element)} #foldery dopisuje do tablicy
    }

    sub cyfryzacja { #pozbywanie się wszystkich znaków oprócz cyfr z nazw folderów
    s/\D//g;
    #and
    #s/[\D]*$//; #\D - jakikolwiek znak nie będący liczbą
    }
    foreach $rt(@numery){
    if ($rt =~ /.-/ ){push(@tabela2,$rt)
    }
    else {push (@bezkresek, $rt)}
    }


    foreach (@tabela2){
    &cyfryzacja;
    }




    foreach $_ (@bezkresek){
    #if ($_ =~ /[0-9]/){
    &cyfryzacja;
    open (status, ">>lista.txt");
    print status "$_\n";

    close status;
    }
    #}


    To wczesny kod, proszę o pomoc, naprawdę przyda sie każda rada, błądzę i błądzę

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj