Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Aiheet - teele

Sivuja: 1 ... 9 10 [11] 12 13 ... 17
201

Loin Outlook-sähköpostitilin, jota joskus käytän pienten viestien tai liitetiedostojen lähettämiseen.

Nyt Outlook ilmoitti, että sähköpostiosoitettani on käytetty ison roskapostimäärän lähettämiseen, ja haluaa puhelinnumeron, jotta jotain voidaan varmistaa.

Yksi ongelma on se, että en edes muista, mikä puhelinnumero tiliä luotaessa oli käytössäni. Ehkä en edes ilmoittanut tilinluonnissa puhelinnumeroa.

Toinen ongelma on se, miten on mahdollista, että sähköpostiosoitteestani olisi lähetetty roskaposteja. Silloinhan jonkun pitäisi tietää salsana tai joku muu keino päästä käyttämään Outlookin tiliäni. Jos roskapostittelu tai tilini käyttö on niin helppoa "jollekin ulkopuoliselle", miten puhelinnumeron lähettämisellä tilanne ratkaistaan.

Jos puhelinnumeroni on muuttunut, menettänen tilini. Toisaalta puhelinnumeroni ei ole salainen, joten jos joku roskapostittaja haluaisi käyttää sitä, mitään estettä sen käytölle ei olisi.

Miten estäisin jatkossa "roskapostien lähettämisen", jos se nytkin on näin yksinkertaista. Toinen sähköpostitilini on toisella yhtiöllä, ja se on ollut käytössä jo kauan, mutta sitä ei ole kukaan koskaan ilmoittanut käytetyn "roskapostien lähettämiseen".

Onko mahdollista, että Outlook ja sitä tarjoava yritys olisikin jostain syystä muita alemmalla tietoturvatasolla.  Vai voiko kysymys olla jostain muusta.




202
Otin Samsungin Anroid-puhelimella kuvia muistikortille. Ovatko ne sellaisessa muodossa, että niitä voi suoraan katsella Ubuntulla tavallisten kuvien tapaan. Eka kokeilu ei näyttänyt onnistuvan, ainoa tapa saada jotin näkymään on Shotwell, mutta se näyttää vain kaikki pikku kuvina.


203
Olen onnistunut kääntämään joitain esimerkkiohjelmia Ubuntu 14.04:ssä komennolla

Koodia: [Valitse]
g++ koe.cpp -o koe -Wall -pedantic -std=c++11
mutta netissä sanotaan, että esimerkiksi regex tarvitsee uudemman kääntäjäversion.

Mikä olisi turvallinen tapa saada käyttöön esimerkiksi versio 4.9 tai 5.1 gcc:stä. Ratkeaisiko kysymys päivittämällä koko Ubuntu versioon 16.04 eli onko siinä mukana uudempi kääntäjäversio.




204

Joskus olisi mukava tehdä dynaaminen käyrä ja saada se näkymään ruudulla.

Olisiko opengl mahdollinen.

Alla oleva ohjelma toimii liukuvärjäyksen osalta, mutta kolmioita en saa onnistumaan.

Koodia: [Valitse]
#include<stdio.h>
#include<stdlib.h>
#include<X11/X.h>
#include<X11/Xlib.h>
#include<GL/gl.h>
#include<GL/glx.h>
#include<GL/glu.h>


//#include <GL/glew.h>  // oma lisäys, tätä ei ole



Display                 *dpy;
Window                  root;
GLint                   att[] = { GLX_RGBA, GLX_DEPTH_SIZE, 24, GLX_DOUBLEBUFFER, None };
XVisualInfo             *vi;
Colormap                cmap;
XSetWindowAttributes    swa;
Window                  win;
GLXContext              glc;
XWindowAttributes       gwa;
XEvent                  xev;

void DrawAQuad() {
 glClearColor(1.0, 1.0, 1.0, 1.0);
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 glOrtho(-1., 1., -1., 1., 1., 20.);

 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
 gluLookAt(0., 0., 10., 0., 0., 0., 0., 1., 0.);

 glBegin(GL_QUADS);
  glColor3f(1., 0., 0.); glVertex3f(-.75, -.75, 0.);
  glColor3f(0., 1., 0.); glVertex3f( .75, -.75, 0.);
  glColor3f(0., 0., 1.); glVertex3f( .75,  .75, 0.);
  glColor3f(1., 1., 0.); glVertex3f(-.75,  .75, 0.);
 glEnd();
}
 
// oma lisäys ***************************
void drawTriangle()
{
    glClearColor(0.4, 0.4, 0.4, 0.4);
    glClear(GL_COLOR_BUFFER_BIT);

    glColor3f(1.0, 1.0, 1.0);
    glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);

        glBegin(GL_TRIANGLES);
                glVertex3f(-0.7, 0.7, 0);
                glVertex3f(0.7, 0.7, 0);
                glVertex3f(0, -1, 0);
        glEnd();

    glFlush();
}



int main(int argc, char *argv[]) {

 dpy = XOpenDisplay(NULL);
 
 if(dpy == NULL) {
  printf("\n\tcannot connect to X server\n\n");
        exit(0);
 }
       
 root = DefaultRootWindow(dpy);

 vi = glXChooseVisual(dpy, 0, att);

 if(vi == NULL) {
printf("\n\tno appropriate visual found\n\n");
        exit(0);
 }
 else {
printf("\n\tvisual %p selected\n", (void *)vi->visualid); /* %p creates hexadecimal output like in glxinfo */
 }


 cmap = XCreateColormap(dpy, root, vi->visual, AllocNone);

 swa.colormap = cmap;
 swa.event_mask = ExposureMask | KeyPressMask;
 
 win = XCreateWindow(dpy, root, 0, 0, 600, 600, 0, vi->depth, InputOutput, vi->visual, CWColormap | CWEventMask, &swa);

 XMapWindow(dpy, win);
 XStoreName(dpy, win, "VERY SIMPLE APPLICATION");
 
 glc = glXCreateContext(dpy, vi, NULL, GL_TRUE);
 glXMakeCurrent(dpy, win, glc);
 
 glEnable(GL_DEPTH_TEST);
 
 while(1) {
  XNextEvent(dpy, &xev);
       
        if(xev.type == Expose) {
        XGetWindowAttributes(dpy, win, &gwa);
                glViewport(0, 0, gwa.width, gwa.height);
        DrawAQuad();
                    // drawTriangle();  // ei toimi
                glXSwapBuffers(dpy, win);
        }
               
else if(xev.type == KeyPress) {
        glXMakeCurrent(dpy, None, NULL);
  glXDestroyContext(dpy, glc);
  XDestroyWindow(dpy, win);
  XCloseDisplay(dpy);
  exit(0);
        }
    } /* this closes while(1) { */
} /* this is the } which closes int main(int argc, char *argv[]) { */


Käännöskomento oli   
Koodia: [Valitse]
gcc -o quad quad.c -lX11 -lGL -lGLU

205
Miten pitäisi tehdä ohjelma, joka toimii muuten itsenäisesti, mutta havaitsee, jos jotain näppäintä on painettu. Ohjelmassa ei haluttaisi pysähtyä odottamaan, tuleeko merkki vai ei kovin pitkäksi aikaa. Tavalliset syötekomennot jäävät sitä paitsi odottamaan enteriä.

Löysin verkosta seuraavan ohjelman, mutta onkohan se vähän liian monimutkainen näin yksinkertaiselta näyttävään kysymykseen. Ainakin siinä tehdään kaksinkertainen työ, kun luettu merkki kirjoitetaan takaisin lukupuskuriin, ja tämän lisäksi asetellaan edestakaisin termios-rakenteen parametreja.

Koodia: [Valitse]
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
int kbhit(void)
{
  struct termios oldt, newt;
  int ch;
  int oldf;

  tcgetattr(STDIN_FILENO, &oldt);
  newt = oldt;
  newt.c_lflag &= ~(ICANON | ECHO);
  tcsetattr(STDIN_FILENO, TCSANOW, &newt);
  oldf = fcntl(STDIN_FILENO, F_GETFL, 0);
  fcntl(STDIN_FILENO, F_SETFL, oldf | O_NONBLOCK);

  ch = getchar();

  tcsetattr(STDIN_FILENO, TCSANOW, &oldt);
  fcntl(STDIN_FILENO, F_SETFL, oldf);

  if(ch != EOF)
  {
    ungetc(ch, stdin);
    return 1;
  }

  return 0;
}

lähde: http://stackoverflow.com/questions/22166074/is-there-a-way-to-detect-if-a-key-has-been-pressed



206
 Sattuisikohan kukaan tietämään, miten saisi kätevästi freecadin python-makrot itse luomaansa hakemistoon.

Tai voisiko freecadia käyttää Ubuntun vakio-pythonin kautta.

Käytössä on Ubuntu 14.04 perusversio, ja voi olla, että uuden 16.04 version mukana tulee myös  uudemopi freecad, jossa asia on ratkaistu.

Tämä ei ehkä ole ihan oikea paikka freecad-kysymyksille, mutta tuli nyt vähän kokeiltua freecadia verkossa olevien ohjeiden avulla, ja joskus voisi opetella lisääkin, jos näistä perusasioista vain selviää  :)


207

En millään keksi, miksi alla oleva map[avain] = arvo -tyylinen lisäys ei käänny alla olevassa ohjelmassa. Voisiko se johtua jotenkin siitä, että map:in arvoina on luokkia? Insert kuitenkin toimii hyvin.

Koodia: [Valitse]
#include <iostream>
#include <string>
#include <map>


class dp  // materialmap käyttää arvoina
{
  public:
    dp (const double a, const double b);

  double d1;
  double d2;
};

 dp::dp(const double a, const double b) : d1(a), d2(b) // dp-luokan muodostin
{ ; }

std::map<std::string, dp> materialmap;  // map, johon halutaan lisätä arvoja

int main()
{
  dp d(5, 6);  // lisättävän luokan olio
  std::cout << d.d1 + d.d2 << std::endl;  // olio toimii hyvin
  //materialmap["tunniste1"] = d; //  <--- TÄMÄ EI KÄÄNNY  ???????
  materialmap.insert(std::make_pair("tunniste1", d));
}

// g++ koe.cpp -o koe -Wall -pedantic -std=c++11

208

Yritin kääntää seuraavan koeohjelman Ubuntu 14.04 g++ -ohjelmaksi

Koodia: [Valitse]
//Sample Program
#include <regex>
#include <iostream>
using namespace std;

int main() {
    regex  reg("[0-9]+");
    if (regex_match("123000", reg)) {
        cout << "It's a match!" <<endl;
    }
 return 0;
}

komennolla

Koodia: [Valitse]
g++ rex01.cpp -o rex01 -Wall -pedantic -std=c++11

mutta tuloksena oli ilmoitus

Koodia: [Valitse]

terminate called after throwing an instance of 'std::regex_error'
  what():  regex_error
Keskeytetty (luotiin core-tiedosto)

Googlesta löytyi, että pitäisi olla gcc-4.9 tai gcc-5. Mikä olisi hyvä tapa saada regex toimimaan niin, että tekisin mahdollisimman vähän muutoksia lts-ominaisuuden säilyttämiseksi Ubuntu 14.04 -versiossa.

gcc-<tab><tab> antaa

Koodia: [Valitse]
gcc-4.8         gcc-ar-4.8      gcc-nm-4.8      gcc-ranlib-4.8
gcc-ar          gcc-nm          gcc-ranlib



209
Jotkut pdf-sivut tulevat näkyviin niin suurina, että ne täyttävät koko näytön, eikä ikkunan pienentäminen ole mahdollista hiirellä vetämällä. Hiiri ei pysty tunnistamaan ikkunan reunaa, koska ikkuna täyttää näytön koko leveydeltä, vaikka kokoruutunäyttö ei ole edes valittuna.

Millä keinolla saisi ikkunan leveyttä (tai korkeutta) pienennettyä niin, että se olisi hiirellä käsiteltävissä.

210
Tällä kertaa yritin lukea vuota c++ :n sijaan raaka-c:llä, eikä virheitä ole ilmaantunut ainakaan niin, että niistä olisi tullut valituksia tai toiminta olisi häiriintynyt.

Nyt kuitenkin ongelmana on se, että vuon (streamin) seuraaminen vie  suoritintehoja niin, että läppärin tuuletin pyörii isoilla kierroksilla, vaikka muuten ei juuri koskaan.

Vuon tarkkailu tehdään alla olevassa silmukassa, joka luultavasti on syyllinen suoritintehojen rohmuamiseen.

Koodia: [Valitse]
while (c!='q')
        {
                // if new data is available on the console, send it to the serial port
                if (read(STDIN_FILENO,&c,1)>0)  write(tty_fd,&c,1);
                // if new data is available on the serial port, print it out
                if (read(tty_fd,&c,1)>0)        write(STDOUT_FILENO,&c,1);
                sleep(0.5);   // <----   lisäsin tämän, mutta vaikutus aika olematon
        }


Alkuperäisessä koodissa ei ollut nukuntaa, lisäsin sen, mutta vaikutus on aika olematon. Ehkä tuuletin käy vähän pienemmillä kierroksilla.

Pitäisikö sleepin sijasta seuranta laittaa omaan säikeeseen tms.

211
Laitoin usb-porttiin kiinni laitteen, joka lukee päätteeltä syötettyjä kirjaimia, muuttaa ne isoiksi kirjaimiksi ja lähettää ne heti takaisin samassa fstreamissa. Fstream on c++ -ohjelmassa, joka on tehty tätä kokeilua varten.

Kun käynnistän ohjelman, voin syöttää sille esim. wyttuq ja se palauttaa WYTTUQ.

Kaikki näyttää toimivan hyvin, mutta vain ensimmäisen merkkijonon osalta. Seuraavalla kerralla "merkkono" >> sarjaportti -komento ei näytä toimivan. Mutta minkään ei pitäisi olla muuttunut, koska uusi yritys tulee silmukassa, jossa mitään ei muuteta.

Alla on ohjelma, josta katsomalla toiminta varmaan selviää parhaiten.

Koodia: [Valitse]
#include <string.h>  // string -käsittelyyn

#include <unistd.h>     // nukkuaika, mutta ei ehkä säikeille
#include <fstream>      // tiedostoluku ja -kirjoitus
#include <iostream>     // cout

int main(int argc, char* argv[])
{

  if(argc < 2)
    { std::cerr << "Usage: " << argv[0] << " port name eg. /dev/ttyUSB3" << std::endl;
        exit(0);
    }


//  std::string str2(std::string("stty -F ") + argv[1] + std::string(" sane raw -echo 9600") );
  std::string str2(std::string("stty -F ") + argv[1] + std::string("  sane raw pass8 -echo -hupcl clocal 9600") );

  std::fstream fs;
  fs.open (argv[1], std::fstream::in | std::fstream::out );
  system( str2.c_str() ); // stty -F /dev/ttyUSB3 sane raw -echo 9600")

  int i = 0;  // kierroslaskuri
  int j = 0;  //cbuffer kirjainlukumäärä
  char cbuffer[80];
  char c1 = 'w'; // luettva merkki, päätteeltä
  char c2 = 'o'; // luettva merkki, arduinosta

  i = 0;
  while(i < 3 ) // tästä alkaa silmukka
    {
      sleep(1);  // jotta arduino varmasti mukana?
      j = 0; c1 = 'p'; c2 = 'o';
      std::cout << "anna kirjaimia, 'q' päättää syötteen ";
      while( c1 != 'q'  ) // kirjaimien loppumerkki
        {
          std::cin >> c1;
          cbuffer[j] = c1;
          j++;
        }
       
      for(int m = 0; m < j; m++)
        { sleep(0.01);
          //sleep(1); // tämän lisäys ei pilaa tuloksia
          fs << cbuffer[m];
              std::cout << "tiedostoon kirjoitettiin " << cbuffer[m] << std::endl;
          sleep(0.01); // että arduino ehtii varmasti mukaan             
        }
     
      while( 1 )
        {           
          fs >> c2 ;
          std::cout << " c2 sarjatiedostosta (iso kirjain) on " << c2 << std::endl;
          if( c2 == 'Q' || c2 == 'o') break;
        }
      i++;
    } // while kierroksille loppuu

  fs.close();  // lisätty varmuuden vuoksi
}


Ohelman tulostuksesta on esimerrkki alla

Koodia: [Valitse]
anna kirjaimia, 'q' päättää syötteen werq
tiedostoon kirjoitettiin w
tiedostoon kirjoitettiin e
tiedostoon kirjoitettiin r
tiedostoon kirjoitettiin q
 c2 sarjatiedostosta (iso kirjain) on W
 c2 sarjatiedostosta (iso kirjain) on E
 c2 sarjatiedostosta (iso kirjain) on R
 c2 sarjatiedostosta (iso kirjain) on Q
anna kirjaimia, 'q' päättää syötteen sq
tiedostoon kirjoitettiin s
tiedostoon kirjoitettiin q
 c2 sarjatiedostosta (iso kirjain) on o
anna kirjaimia, 'q' päättää syötteen q
tiedostoon kirjoitettiin q
 c2 sarjatiedostosta (iso kirjain) on o

Sen jälkeen, kun sarjavuo fs on tulostanut jotain, se ei enää suostu ottamaan mitään syötettä vastaan. Pitäisikö stty parametreja säätää jotenkin niin, että fs -vuo palaisi samaan tilaan, jossa se on ollut silmukan ensimmäisellä keirroksella. Auttaisiko ehkä joku lopetusmerkki, pitäisikö käyttää -canon -muotoa ?

Mitkä olisivat sellaisia päätekomentoja, joilla voisi kirjoittaa ja lukea /dev/ttyUSB* -portissa olevan laitteen palauttaman merkin.

C++ -ohjelmaa tässä ei kai tarvittaisi välissä, jos osaisin antaa oikeat päätekomennot ja oikeat stty -parametrit?



212
Käytän Ubuntu 14.04:ää ja sen mukana vakiona tulevaa LibreOfficea. Haluaisin kokeilla Calcilla basicilla tehtyä kaavaketta, jolla voisi syöttää esim. numeroarvoa laskentataulukon soluihin.

Netistä löytyy muutamia ohjeita, mutta tähän mennessä en ole onnistunut saamaan niitä kunnolla toimimaan. Kaavakkeen voi luoda, mutta yhtään kenttää en siihen ole onnistunut basicilla tekemään.

Manuaalinen dialogieditori ei myöskään näyttäisi tomivan, en ainakaan ole onnistunut saamaan yhtään kenttää kaavakkeeseen.

Tietäisikö kukaan jonkun toimivan basic-koodin, jolla saisi esim. kaavakkeen ja pari kenttää siihen Calcissa.

213
Jos on tilanne sellainen, että halutaan esimerkiksi ajastaa kaksi tehtävää niin, että toinen tehdään 2 sekunnin välein ja toinen 3 sekunnin välein, niin millainen olisi hyvä ratkaisu c++ :ssa.

Tällainen ratkaisu ei vaikuttaisi kovin edistyneeltä

Koodia: [Valitse]
last-time1 = last-time2 = current_time()
while(1)
{
    if( curent_time – last-time1 > 2)
      {
          do_task1();    // tämän olisi hyvä kestää alle sekunnin
           last_time1 = current_time()
      }                       
 
    if( curent_time – last-time2 > 3)
      {
          do_task2();     // tämän pitäisi kestää alle 2 sekuntia
           last_time2 = current_time()
      }

     do_other_tasks()  // näistä siis pitäisi tietää, että niiden
                                  // tekeminen vie aina alle 2 sekuntia
}

Voisiko c++ :lla tehdä jotenkin näin

Koodia: [Valitse]
main()
{
   do_task1()  // miten tämä saataisiin ajastumaan 2 sekunnin välein
   do_task2()  // miten tämä saataisiin ajastumaan 3 sekunnin välein
   do_other_tasks() // tämä olisi sitten normaalia koodia

}

214
Kokeilin c++ :n chrono-kirjastoa ja huomasin, että Fibonaccin lukujen laskeminen kestää yllättävän kauan.

Esimerkissä noin 0,6 sekuntia, mutta omalla koneellani jopa yli 2 sekuntia. Ohjelmaa on helppo kokeilla. Lähdekoodi on tässä

Koodia: [Valitse]
#include <iostream>
#include <chrono>
#include <ctime>
 
long fibonacci(unsigned n)
{
    if (n < 2) return n;
    return fibonacci(n-1) + fibonacci(n-2);
}
 
int main()
{
    std::chrono::time_point<std::chrono::system_clock> start, end;
    start = std::chrono::system_clock::now();
    std::cout << "f(42) = " << fibonacci(42) << '\n';
    end = std::chrono::system_clock::now();
 
    std::chrono::duration<double> elapsed_seconds = end-start;
    std::time_t end_time = std::chrono::system_clock::to_time_t(end);
 
    std::cout << "finished computation at " << std::ctime(&end_time)
              << "elapsed time: " << elapsed_seconds.count() << "s\n";
}

Käänsin sen komennolla

Koodia: [Valitse]
g++ koe03.cpp -o koe03 -std=c++0x -Wall -pedantic

Olisi mielenkiintoista tietää, kauanko ohjelman suoritus toisilla koneilla kestää ja olsiko jollain käännöskomennon parametreilla vaikutusta asiaan (mitä en kyllä uskoisi).

Oma koneeni on vanha i5 -laite.




215
Laitoin koneeseen varmaan melkein 1½ vuotta sitten tikulle ottamani Lubuntun, ja asennus sujui hyvin.

Ylen areena valitti vanhasta Flashista, jolloin kirjoitin päätteelle

Koodia: [Valitse]
sudo apt-get update

Mutta näytti siltä, että tiedostolista vain käytiin läpi eikä mitään päivityksiä (luullakseni) asennettu.

upgrades -tiedostossa on kaikki teksti kommentoitu. Pitäisikö siellä käydä laittamassa se normal -asetus päälle, vai onko se  päällä oletuksena.

Olisiko tuki Lubuntun 14.04 -versiosta loppunut ja vaikuttaisiko sillä tavalla, että päivitykset eivät enää onnistu. Ubuntu Suomen sivuilla on kuitenkin milestäni Lubuntu 14.04 vielä suositeltavan vaihtoehtona.

Koneessa on vain ½ Gt muistia ja Atom-suoritin, joten muuten Lubuntu voisi olla hyvä sopiva käyttis. Nyt se pitäisi vain saada siihen tilaan, että se päivittyy tavalliseen tapaan.





216
kokeilin seuraavaa tiedostoa flexc++  :lla. Tiedoston nimenä oli lexer.

Koodia: [Valitse]
%%
[ \t\n]+                            // skip white space chars.
[0-9]+                              return NUMBER;
[[:alpha:]_][[:alpha:][:digit:]_]*  return IDENTIFIER;
.                                   return matched()[0];


ja näyttää toimivan   :)

Tämä aihe on oikeastaan turha, yritin poistaa sen, mutta se ei kai ole sallittua. flexc++ ei ensin näyttänyt toimivan, oli joku kirjoitus tms. -virhe, ja ehdin jo kysyä toiminnan varmistamiseksi täältä.... mutta viestin saa siis poistaa ....



217
Yritin laittaa sovellusvalikoimasta ja päätteltä koneelle flex++ - ja bison-ohjelmat, mutta kumpikaan ei näytä onnistuvan.

Koodia: [Valitse]
sudo apt-get install flex++

. . .

Huomautus: valitaan ”obexftp”-paketti paketin ”flexmem” sijaan
Joitakin paketteja ei voitu asentaa. On ehkä vaadittu mahdottomia tai,
jos käytetään epävakaata jakelua, joitain vaadittuja paketteja ei ole
vielä luotu tai siirretty Incoming-kansiosta.
Seuraavista tiedoista voi olla hyötyä selvitettäessä tilannetta:

Näillä paketeilla on tyydyttämättömiä riippuvuuksia:
 flex-old : Ristiriidat: flex
            Ristiriidat: flex:i386
            Ristiriidat: libfl-dev mutta 2.5.35-10.1ubuntu2 on merkitty asennettavaksi
E: Pulmia ei voi korjata, rikkinäisiä paketteja on pysytetty.


Olisko keinoa saada ohjemat koneeseen turvallisella tavalla?


218

Tekstimuotoinen tiedosto sisältää osoite- ja rakennustietoja useasta kohteesta siten, että jokainen tieto on omalla rivillään.

Tiedostossa on tiedot noin 50 (kohdelkm) kohteesta, ja kaikki kohdetiedot ovat samanmuotoisia.
Jokaisesta kohteesta on noin 20 (tietolkm) tietoriviä.

Tiedosto näyttää siis suunnilleen tällaiselta

kohdenimi
tieto1
tieto2
tieto3
...

kohdenimi
tieto1
tieto2
tieto3
....

kohdenimi
tieto1
tieto2
tieto3
....

Miten saisin poimittua jokaisesta kohteesta (k) rivit (m ja n) omaan tiedostoonsa.

Komentoriviohjelmointia en osaa vielä niin paljon, että poiminta onnistuisi helposti.

Ehkä python olisi myös yksi ratkaisuvaihtoehto?


219
Kokeilen koneessa Virtual Boxia niin, että virtuaalikoneessa on sama käyttis kuin peruskoneessakin eli Ubuntu 14.04.

Tähän asti on mennyt yllättävän hyvin, mutta päivityksen kanssa Virtual Boxissa on ongelmana, että Päivitysten hallinta ilmoittaa, että kaikkia tiedostoja ei löydy. Tämä on siis Virtual Boxin Päivitysten hallinta.

Virtual Boxin Päivitysten hallinta ei löydä mm. grubia, mikä tuntuukin toisaalta ihan järkevältä, konehan on jo käynnissä.

Virtual Box haluaa hakea myös erilaisen Linuxin, kuin mikä koneessa on. Liite taisi olla Linux-extra tms.

Onko virtuaalikoneen virtuaalikäyttiksen päivitys yleensäkään täysin samanlaista kuin oikean koneen koneen?

teele
 

220

Yritin asentaa 14.04 -versiota korvaamaan 12.04 -versiota usb-tikulta, mutta taisi koko levy nollautua mukaan lukien toisella osiolla ollut Windows :(

jälkeen päin löytyi ulkomaan kielinen teksti

 
Lainaus
From Ubuntu 14.04.2 Release notes https://wiki.ubuntu.com/TrustyTahr/R..._post-install:
Automatic install is broken on drives that contain partitions that either do not have an operating system installed (eg. a user data partition like /home on Linux or D: on Windows), or partitions that have Windows 8 installed. Selecting automatic install (or upgrade) on these systems will result in the whole drive being wiped and all existing data will be lost. There are also problems dealing with systems with multiple drives. This bug is present in released media of 14.04 and 14.04.1. If you have a drive with any pre-existing partitions, or multiple drives, then you should use manual partitioning. Ensure you have backups. (1265192)

Se oli osoitteessa

http://ubuntuforums.org/showthread.php?t=2147295



Sivuja: 1 ... 9 10 [11] 12 13 ... 17