Info printimine konsooli ühele reale

Siin saab vesta jutte Linuxi maailmast erinevatel vabadel teemadel. Teemadele on seatud automaatne kustutamine kahe kuu möödudes

Moderaator: Moderaatorid

Vasta
huu
Pingviini kasutaja
Pingviini kasutaja
Postitusi: 63
Liitunud: 09.08.2008, 13:28

Info printimine konsooli ühele reale

Postitus Postitas huu »

Näiteks on mingis keeles for loop. Kuidas seda konsooli printida nii, et loop'i iga liige lihtsalt asendab eelmise prinditud liikme ja rida ei vahetata?

Peaks vist üsna lihtne teha olema, olen seda paljudes programmides näinud.
Näiteks protsentide lugemine nullist sajani.
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

ehk vast nii et paned andmed minema puhvrisse ja andmete esitaja paned tsükliliselt neid andmeid sealt lugema kuni tingimuseni mis loendamise lõpetab.

mingi loenduri näide http://www.daniweb.com/forums/thread189556.html#

ehk saad kasulikke vihjeid.

edit: ma ei saa seda ise kah jooksma nii kuidas ettekujutus on :P

see on sama asi mis hakkab kaadreid lugema programmis mplayer.

käsk mplayer mms://tv.eenet.ee/kotkas

siis hakkavad terminalis numbrid jookma.

ilmselt tuleb programmi koodist vaadata kuidas loendurid tehtud on.
Kasutaja avatar
DaStoned
Pingviini aktivist
Pingviini aktivist
Postitusi: 395
Liitunud: 11.01.2007, 16:23

Postitus Postitas DaStoned »

Väga prosta lahendus: väljatrükkimisel kasuta reavahetuse '\n' asemel '\r' ja suru stdout puhvrist ekraanile. Kogu maagia. Eeldab "küpsetatud" terminalirezhiimi (st sisend-väljud töödeldakse reakaupa, mitte tähe kaupa) mis ka vaikimisi on.

Minimaalne näidisprogramm C-s, mis loeb 15-ni:

Kood: Vali kõik

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main() {
    int i;
    for (i = 0; i < 15; i++) {
        usleep(200000);
        printf("%02d\r", i);
        fflush(stdout);
    }
    printf("\n");
    return 0;
}
When the shit hits the fan, keep your mouth shut!
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

tavalises konsoolis töötas, eclipse terminalis ei töötanud. pani iga tulemuse eraldi reale.
olen Troll ja ootan pingviin.org konto sulgemist.
huu
Pingviini kasutaja
Pingviini kasutaja
Postitusi: 63
Liitunud: 09.08.2008, 13:28

Postitus Postitas huu »

Tänud, DaStoned. Täpselt see, mida vaja.
Kasutaja avatar
imapi
Vana Pingviin
Vana Pingviin
Postitusi: 567
Liitunud: 01.12.2005, 02:00

Postitus Postitas imapi »

ja kui ei taha kompileerida ja möllata siis võib kirjutada ka bashi scripti, millesse ma hiljuti olen "armunud" :)

#!/bin/bash
for ((i=100;i<=115;i+=1)); do
echo -e -n "\r$i"
sleep 1
done
Viimati muutis imapi, 15.06.2009, 22:31, muudetud 3 korda kokku.
More than once my wife has asked why I don't do Windows, because that's where the money is. Why don't I just sell drugs or produce porn - there's money in those things, right?
huu
Pingviini kasutaja
Pingviini kasutaja
Postitusi: 63
Liitunud: 09.08.2008, 13:28

Postitus Postitas huu »

See bash script kirjutab iga arvu uuele reale ju.
Kasutaja avatar
imapi
Vana Pingviin
Vana Pingviin
Postitusi: 567
Liitunud: 01.12.2005, 02:00

Postitus Postitas imapi »

oehh sorry :) ... ma kiiruga kirjutasin lihtsalt näite kui lihtne on bashis üldse scriptida. Viimasel ajal palju oma elu lihtsamaks sellega teinud :)

...
muutsin ära, visuaalselt on ok aga kindlasti on paremaid lahendusi :)
More than once my wife has asked why I don't do Windows, because that's where the money is. Why don't I just sell drugs or produce porn - there's money in those things, right?
Kasutaja avatar
DaStoned
Pingviini aktivist
Pingviini aktivist
Postitusi: 395
Liitunud: 11.01.2007, 16:23

Postitus Postitas DaStoned »

olavsu1 kirjutas:tavalises konsoolis töötas, eclipse terminalis ei töötanud. pani iga tulemuse eraldi reale.
Ilmselt siis eclipse terminal ei ühildu unixi terminaliga. Pole neil ka palju ühist, eclipse on multiplatvormne ja on eeskätt Java tegemiseks.
When the shit hits the fan, keep your mouth shut!
Kasutaja avatar
Taux007
Pingviini aktivist
Pingviini aktivist
Postitusi: 204
Liitunud: 26.05.2007, 00:30

Postitus Postitas Taux007 »

Äkki tahab keergi seletada lähemalt, mis see bashis scriptimine on?
Look at the dead outside my window..
olavsu1
Vana Pingviin
Vana Pingviin
Postitusi: 923
Liitunud: 01.12.2006, 23:40

Postitus Postitas olavsu1 »

anjuta, mille eile avastasin, see paneb küll tulemuse ühele reale.
olen Troll ja ootan pingviin.org konto sulgemist.
Kasutaja avatar
imapi
Vana Pingviin
Vana Pingviin
Postitusi: 567
Liitunud: 01.12.2005, 02:00

Postitus Postitas imapi »

Taux007 kirjutas:Äkki tahab keergi seletada lähemalt, mis see bashis scriptimine on?
Siin kenasti seletatud. http://en.wikipedia.org/wiki/Bourne_shell
More than once my wife has asked why I don't do Windows, because that's where the money is. Why don't I just sell drugs or produce porn - there's money in those things, right?
Kasutaja avatar
obundra
Vana Pingviin
Vana Pingviin
Postitusi: 1213
Liitunud: 04.08.2005, 03:00

Postitus Postitas obundra »

Vasta