Pieniä kysymyksiä ohjelmoinnista

Henkilökohtaisesti en pidä fetch apia juuri minään, koska axios on vaan aika hemmetin kova promise based http kirjasto.

Koodi näyttää nopeesti vilkastuna ihan about järkevältä, pieni then hell näyttäs orastavia perkelöitymisen merkkejä. await/asyc voi tehdä siitä mukavamman näköstä lukea.

.then(players => Promise.all(players)) <- Sitä en tiedä miksi haluat lupauksen arraysta joka pitää sisällään objecteja?
( Tämä on tietämykseni fetchistä. Oletan ettei sieltä tule Promisea kun kutsuu json() )

Edit: piti ihan kokeilla
Ja juu pitäähän ne json resolvaa?!
Jotenki tämmönen tuntus kivalta

Koodi:
const baseUrl = "https://statsapi.web.nhl.com";

const playerStats = ({ person: { link } }) =>
  `${baseUrl}${link}?hydrate=stats(splits=statsSingleSeason)`;

fetch(`${baseUrl}/api/v1/teams/1/roster`)
  .then(result => result.json())
  .then(({ roster }) => Promise.all(roster.map(player => fetch(playerStats(player)))))
  .then(rosterResponses => Promise.all(rosterResponses.map(response => response.json())))
  .then(rosterStats => console.log(rosterStats));
Kiitos tästä. Näin tehtynä näyttää sata kertaa paremmalta kuin minun versio.
 
Olisiko jotain parempaa vinkkiä?
Ekaa linkkiä saan:

jooh.png

Mitä noista kannattaa klikata?
 

Olisiko jotain parempaa vinkkiä?
Ekaa linkkiä saan:

jooh.png

Mitä noista kannattaa klikata?

Liittyy ohjelmointiin 0
Tuossa ylempänä sait jo kaksi suoraa linkkiä suoraan kysymyksen aiheeseen liittyviin ketjuihin. Josko jommasta kummasta se vastaus löytyisi kun lukaisee läpi? Ellei, niin todennäköisemmin saat vastauksen kysymällä esim. noista ketjuista kuin tästä.
 
Olen aina "tiennyt", että C++:ssa taulukon koon on oltava vakio, eikä sitä voi lukea käyttäjän syötteestä.
Nyt kuitenkin opin, että se onkin mahdollista. Voisiko joku selittää?
 
Olen aina "tiennyt", että C++:ssa taulukon koon on oltava vakio, eikä sitä voi lukea käyttäjän syötteestä.
Nyt kuitenkin opin, että se onkin mahdollista. Voisiko joku selittää?

Horo kääntäjä kelpuuttaa standardin vastaista C++:aa sallimalla C99 VLA:t myös C++:ssa?
 
Haluan ensimmäisen segment:in line:n käsiksi.
Ja normi css menee about näin

Koodi:
.segment.first-child > .line {
    display:none
}
    
<div  class="segment">
    <div class="dot"></div>
    <div class="line"></div>
</div>

mutta mites sitte

CSS IN JS ???


Koodi:
  segment: {
    '&:first-child': {
      // toimii pääsen ekaan segmenttiin käsiksi!
    }
  },

  segment: {
    '&:first-child >.line': {
      // ei toimi
    }
  },

  segment: {
    '&:first-child': {
      line: {
       // ei toimi
      }
    }
  },

  segment: {
    '&:first-child': {
      '&.line': {
       // ei toimi
      }
    }
  },

:confused::confused::confused:
 
Mikä CSS-in-JS kirjasto? Eihän tuohon mitään standardia kai ole olemassa.
 
Mikä CSS-in-JS kirjasto? Eihän tuohon mitään standardia kai ole olemassa.

Eikös JSS ala olla aika standardi?

Koodi:
  segment: {
    '&:firt-child': {
     '& $line':{
      // ja tämä toimii.
     }
    }
  }

hetiku avaan suunsa ja kysyy! niin vastaus yleensä seisoo jo nenän edessä! :btooth:
 
Mitenkäs PHP:llä (tai jollain muulla kielellä mitä voi käyttää Apache serverillä) onnistuisi sellainen Fire & Forget funktio?

Ideana on että käyttäjä menee esim osoitteeseen http://localhost/start_test.php joka sitten käynnistää toisen PHP skriptin. Tässä tapauksessa test.php:n. En tarvitse mitään vastausta skriptiltä enkä mitään muutakaan käyttäjä interaktiota. Test.php tiedosto käy parin sadan megan XML tiedoston läpi ja tallentaa tietoja MySQL databaseen.

PHP:
$command = 'php -f test.php >/dev/null 2>&1 &';

system($command);

echo 'Test started!'

Välillä toi komento toimii ja välillä ei. Riippuen XML tiedoston koosta.
 
Mitenkäs PHP:llä (tai jollain muulla kielellä mitä voi käyttää Apache serverillä) onnistuisi sellainen Fire & Forget funktio?

Ideana on että käyttäjä menee esim osoitteeseen http://localhost/start_test.php joka sitten käynnistää toisen PHP skriptin. Tässä tapauksessa test.php:n. En tarvitse mitään vastausta skriptiltä enkä mitään muutakaan käyttäjä interaktiota. Test.php tiedosto käy parin sadan megan XML tiedoston läpi ja tallentaa tietoja MySQL databaseen.

PHP:
$command = 'php -f test.php >/dev/null 2>&1 &';

system($command);

echo 'Test started!'

Välillä toi komento toimii ja välillä ei. Riippuen XML tiedoston koosta.

PHP: ignore_user_abort - Manual

Olisko tämä se mitä haetaan? Eli se test.php laukaistaan http get reguestilla ja se saa jäädä rullaamaan.
 
ignore_user_abort(true) ja set_time_limit(0) on test.php:ssä jo käytössä mutta niillä ei vaikuttaisi olevan mitää vaikutusta.
 
Välillä toi komento toimii ja välillä ei. Riippuen XML tiedoston koosta.
Tästä tulee kuva, että vika ei ole siinä etteikö prosessi käynnistyisi vaan että se taustaprosessi itsessään jumii. Pistä logittamaan johonkin muualle kuin /dev/nulliin niin näät mikä on ongelma.
 
Oliskohan tuossa PHP-tapauksessa parempi ratkaisu ja design siten että kun tuota http routea kutsutaan niin taustalla kirjoitetaan vain jokin arvo tiedostoon sen merkiksi, että tausta-ajo pitää suorittaa. Sitten se tausta-ajon käynnistysscripti croniin kyttäämään tiedostoa. Kun ajo on suoritettu niin taas merkki tiedostoon, että ajoa ei tarvitse suorittaa. Ikään kuin hyvin light weight eventbus.
 
Rajapinta ei palauta Last-Modified otsaketta, joten kuinka huono tai hyvä ajatus olisi käyttää Content-Length otsaketta triggeröimään välimuistin päivitys?
Äkkiseltään vaikuttaisi ihan toimivalta ratkaisulta.
 
Rajapinta ei palauta Last-Modified otsaketta, joten kuinka huono tai hyvä ajatus olisi käyttää Content-Length otsaketta triggeröimään välimuistin päivitys?
Äkkiseltään vaikuttaisi ihan toimivalta ratkaisulta.
Oletan että käytät HTTP HEAD -pyyntöä hakemaan pelkät headerit taustajärjestelmästä ja sieltä tulee silloinkin Content-Length headeri, niin tuon pitäisi olla kohtuullisen toimiva ratkaisu.

Jos pyyntö tehdään kuitenkin HTTP GET -pyyntönä, niin silloin itse voisin kuvitella laskevani jonkin tarkistussumman sisällöstä ja vertaamalla sitä välimuistiin tallennettuun tarkistussummaan.

EDIT: Aina tuota Content-Length headeria ei tule vastauksena HTTP HEAD -pyyntöön
 
Eclipsessä heittää tuollaista virhettä, kun yritän ajaa mitä tahansa ohjelmaa:

eVXcerl.png


JavaFX asennettu Eclipseen uudestaan tuloksetta. Kone käynnistetty luonnollisesti uudestaan. Millä ihmeellä pääsen tuosta ohi?
 
Jos haluaisin Windows-peliin online high score -listan esim. nettisivulle niin miten tämä olisi järkevä toteuttaa?

En käytä mitään yleistä pelimoottoria ja kokemusta on vain Windows offline työpöytäsoftien koodaamisesta harrastelijatasolla.
 
Jos haluaisin Windows-peliin online high score -listan esim. nettisivulle niin miten tämä olisi järkevä toteuttaa?

En käytä mitään yleistä pelimoottoria ja kokemusta on vain Windows offline työpöytäsoftien koodaamisesta harrastelijatasolla.
Varmaan helpoin (eniten ohjeita youtubessa jne) on lähteä tekemään jokin SQL -tietokanta. Tuonne sitten päivittää clientilta pisteet. Verkkosivulle sitten hakee jollain ajaxilla tms. tiedot suoraan, vaikka datagridiin.
Tapoja on valtavasti erillaisia ja riippuen entisestä osaamisestasi/tasostasi on helpointa lähteä tekemään moista. Oletan, että olet ilmeisesti koodannut jotain .NET/java softaa aiemmin, joten tuossa on aspilla toteutettuna jonkulainen ohje:
 
Jos haluaisin Windows-peliin online high score -listan esim. nettisivulle niin miten tämä olisi järkevä toteuttaa?

En käytä mitään yleistä pelimoottoria ja kokemusta on vain Windows offline työpöytäsoftien koodaamisesta harrastelijatasolla.
Jos käytät pelille jotain jakelualustaa (esim. Steam), se saattaa tarjota moisen toiminnallisuuden, jolloin sitä voinee käyttää suoraan API:n kautta. Ainakin Steam tarjoaa leaderboard-toiminnallisuuden. Muussa tapauksessa toiminee varmaan esim. tuo yo. viestin idea.
 
Kiitos. Näköjään opiskeltava aika paljon uutta. Ympäristönä on Delphi ja kielenä siis pascal. Olen tosiaan koodaillut lähinnä omaan käyttöön apuohjelmia ja Delphi on siihen riittänyt mainiosti. Tuo Steam API näyttää mukavalta, mutta Steam-julkaisu ei taida olla kovin realistinen vaihtoehto kun sen verran niche juttu kyseessä (vuoropohjainen roguelike-peli vanhahtavalla toteutuksella).
 
Kiitos. Näköjään opiskeltava aika paljon uutta. Ympäristönä on Delphi ja kielenä siis pascal. Olen tosiaan koodaillut lähinnä omaan käyttöön apuohjelmia ja Delphi on siihen riittänyt mainiosti. Tuo Steam API näyttää mukavalta, mutta Steam-julkaisu ei taida olla kovin realistinen vaihtoehto kun sen verran niche juttu kyseessä (vuoropohjainen roguelike-peli vanhahtavalla toteutuksella).
Steamiin saa kyllä jokseenkin pelin kuin pelin, jos vaan näyttää Valvelle sopivan nipun rahaa. Pikaisen googlauksen perusteella sopiva nippu näyttäisi olevan $100.
 
Jos haluaisin Windows-peliin online high score -listan esim. nettisivulle niin miten tämä olisi järkevä toteuttaa?

En käytä mitään yleistä pelimoottoria ja kokemusta on vain Windows offline työpöytäsoftien koodaamisesta harrastelijatasolla.

google firebase, tai joku muu realtime database ratkaisu?
 
Mitenkäs Slim3:lla väännettyn PHP-ohjelmaan saisi tuotua esim. webeweb/bootstrap-bundle - Packagist ?

Olen koittanut tuoda Slim3 tutoriaalien mukaisesti addExtension, mutta kaatuu aina siihen, ettei ko. extensionin sisältämiä funktioita löydy esim. renderIcon.

PHP:
  $view->addExtension(new GridTwigExtension($view->getEnvironment()));

Tulostamalla tuon $view objektin voi haivaita, että ko. extensionin kohdalla siellä tulee *RECURSION*.

Sinällään ymmärrän sen, kun tuossa kutsutaan ensin tuota $view objektia, joka annetaan myös parametrinä uudelle lisäosalle.
Ilmeisesti noita lisäosia voi tehdä monella tapaa...
 
Koodi:
const hello = () => console.log("Hello World")

function hello() {
  console.log("Hello Word")
}

Javascriptiä. Miksi en aina käyttäisi tuota ylempää tapaa (function expression) alemman (function declaration) sijasta? Olen tykästynyt tuohon ylempään tapaan ja tulee käytettyä sitä omassa koodissa aina. Noiden ero on ainakin se, että alemmalla tavalla luodut funktiot hoistataan, eli niitä voidaan kutsua ennen niiden luomista, mutta mitäs muita tärkeitä eroja noiden välillä on?
 
Javascriptiä. Miksi en aina käyttäisi tuota ylempää tapaa (function expression) alemman (function declaration) sijasta?

Are 'Arrow Functions' and 'Functions' equivalent / exchangeable?

Siinä on suht hyvä vastaus, ja perässä linkkejä lisämateriaaliin.

Arrow function (tai "fat arrow") ei tietenkään toimi silloin, jos ajoympäristö on ES5, joten toisinaan pitää kirjoittaa vanhalla mallilla (tai transpileta babelilla tai muulla vastaavalla) kun uudempaa ei tueta. Muuten käytän itsekin 90% nuolifunktioita, paitsi silloin jos tulee tarve kirjoittaa luokkia - joka riippuu aika vahvasti siitä mitä ohjelmointikehystä ympärillä käyttää. Funktionaalisessa koodissa uudempi tapa on ihan ylivertainen, kun useat asiat menevät usein siisteiksi onelinereiksi.
 
  • Tykkää
Reactions: hmb
Koodi:
const hello = () => console.log("Hello World")

function hello() {
  console.log("Hello Word")
}

Javascriptiä. Miksi en aina käyttäisi tuota ylempää tapaa (function expression) alemman (function declaration) sijasta? Olen tykästynyt tuohon ylempään tapaan ja tulee käytettyä sitä omassa koodissa aina. Noiden ero on ainakin se, että alemmalla tavalla luodut funktiot hoistataan, eli niitä voidaan kutsua ennen niiden luomista, mutta mitäs muita tärkeitä eroja noiden välillä on?
Käytännössä iso ero tulee ainakin siitä, miten this toimii. Monen tarpeen kannalta merkityksetön ero on myös se, että function-syntaksilla määritellyillä funktioilla on myös kielen kannalta nimi kun taas nuolifunktioilla ei ole. Nimi siis löytyy funktion name-propertystä jos on löytyäkseen.
 
  • Tykkää
Reactions: hmb
Jollain käytännön kokemusta Eloquent&SQLite yhdistelmästä?
Miten Eloquentia saisi hyödynnettyä tehokkaasti olemassaolevan SQLite kannan kanssa?
 
Onko tietoa miten pystyisi simuloimaan sulautettua C-ohjelmointia?

Esim. Jos jotain ihan perustavaraa kuten LED:in vilkkumista haluaisi testata mutta ei ole mitään rautaa jonka sisään ohjelmoida, niin voiko millään C-ohjelmointi softalla simuloida sitä piirilevyn outputtia?

Alla simppeli LED-blinky koodi C-kielellä.

void wait (void) { /* wait function */
; /* only to delay for LED flashes */
}

void main (void) {
unsigned int i; /* Delay var */
unsigned char j; /* LED var */

while (1) { /* Loop forever */
for (j=0x01; j< 0x80; j<<=1) { /* Blink LED 0, 1, 2, 3, 4, 5, 6 */
P4 = j; /* Output to LED Port */
for (i = 0; i < 20000; i++) { /* Delay for 10000 Counts */
wait (); /* call wait function */
}
}

for (j=0x80; j> 0x01; j>>=1) { /* Blink LED 6, 5, 4, 3, 2, 1 */
P4 = j; /* Output to LED Port */
for (i = 0; i < 20000; i++) { /* Delay for 10000 Counts */
wait (); /* call wait function */
}
}
}
}
 
Onko tietoa miten pystyisi simuloimaan sulautettua C-ohjelmointia?

Esim. Jos jotain ihan perustavaraa kuten LED:in vilkkumista haluaisi testata mutta ei ole mitään rautaa jonka sisään ohjelmoida, niin voiko millään C-ohjelmointi softalla simuloida sitä piirilevyn outputtia?

Alla simppeli LED-blinky koodi C-kielellä.

void wait (void) { /* wait function */
; /* only to delay for LED flashes */
}

void main (void) {
unsigned int i; /* Delay var */
unsigned char j; /* LED var */

while (1) { /* Loop forever */
for (j=0x01; j< 0x80; j<<=1) { /* Blink LED 0, 1, 2, 3, 4, 5, 6 */
P4 = j; /* Output to LED Port */
for (i = 0; i < 20000; i++) { /* Delay for 10000 Counts */
wait (); /* call wait function */
}
}

for (j=0x80; j> 0x01; j>>=1) { /* Blink LED 6, 5, 4, 3, 2, 1 */
P4 = j; /* Output to LED Port */
for (i = 0; i < 20000; i++) { /* Delay for 10000 Counts */
wait (); /* call wait function */
}
}
}
}
Teet erillisen säikeen, joka lukee tuota P4 muistipaikkaa. Vai pitääkö sijoituksen P4:ään olla blokkaava, eli softa on aina pysähdyksissä niin kauan, kunnes kirjoitus on suoritettu? Sitten tarvitaan vähän erilainen ratkaisu.
 
Onko tietoa miten pystyisi simuloimaan sulautettua C-ohjelmointia?

Esim. Jos jotain ihan perustavaraa kuten LED:in vilkkumista haluaisi testata mutta ei ole mitään rautaa jonka sisään ohjelmoida, niin voiko millään C-ohjelmointi softalla simuloida sitä piirilevyn outputtia?

Alla simppeli LED-blinky koodi C-kielellä.

void wait (void) { /* wait function */
; /* only to delay for LED flashes */
}

void main (void) {
unsigned int i; /* Delay var */
unsigned char j; /* LED var */

while (1) { /* Loop forever */
for (j=0x01; j< 0x80; j<<=1) { /* Blink LED 0, 1, 2, 3, 4, 5, 6 */
P4 = j; /* Output to LED Port */
for (i = 0; i < 20000; i++) { /* Delay for 10000 Counts */
wait (); /* call wait function */
}
}

for (j=0x80; j> 0x01; j>>=1) { /* Blink LED 6, 5, 4, 3, 2, 1 */
P4 = j; /* Output to LED Port */
for (i = 0; i < 20000; i++) { /* Delay for 10000 Counts */
wait (); /* call wait function */
}
}
}
}
Miten olisi ihan jonkun mikrokontrollerin oma kääntäjä/simulaattori? Ainakin aikanaan Atmelin AVR:n IDE:ssä oli simulaattori ja varmaankin Microchipin PICcien kanssa on sama juttu.
 
Mitäs web UI frameworkiä jengi käyttää nykyään vai itsekkö teette alusta asti CSS:llä kaiken? Koska itse en ole mikään CSS-velho, eikä oikein UI-hommat niin kiinnosta, niin tulee aika nopeasti vedettyä pakasta Bootstrap (vanha ja kulunut, mutta ajaa asiansa) tai Materializecss (mobiililla toimii kivasti). Töissä meillä on yhdessä tuotteessa myös Bulma, mutta en ole siihen niin perehtynyt.
 
  • Tykkää
Reactions: hmb
Mitäs web UI frameworkiä jengi käyttää nykyään vai itsekkö teette alusta asti CSS:llä kaiken? Koska itse en ole mikään CSS-velho, eikä oikein UI-hommat niin kiinnosta, niin tulee aika nopeasti vedettyä pakasta Bootstrap (vanha ja kulunut, mutta ajaa asiansa) tai Materializecss (mobiililla toimii kivasti). Töissä meillä on yhdessä tuotteessa myös Bulma, mutta en ole siihen niin perehtynyt.
Nyt tulee tehtyä reactia nii paljon, että material-ui on käytössä about aina. Mutta jos ei reactia alla nii semantic-ui ja joskus foundation.
 
  • Tykkää
Reactions: hmb
Mitäs web UI frameworkiä jengi käyttää nykyään vai itsekkö teette alusta asti CSS:llä kaiken? Koska itse en ole mikään CSS-velho, eikä oikein UI-hommat niin kiinnosta, niin tulee aika nopeasti vedettyä pakasta Bootstrap (vanha ja kulunut, mutta ajaa asiansa) tai Materializecss (mobiililla toimii kivasti). Töissä meillä on yhdessä tuotteessa myös Bulma, mutta en ole siihen niin perehtynyt.

Semantic UI:ta olen käyttänyt omissa pikku projekteissa.
 
  • Tykkää
Reactions: hmb
Ei kellään olis tiedossa edullista gps paikannus palikkaa, jolla olis avoin SDK ja mahdollista tunkata palikka soittelemaan omalle serverille?
 
MySQL asennus windowsissa; kuinka turkasen manuaalinen prosessi tuo oikein on?
Palvelin käynnistyy kyllä Windows palveluna käynnistyksen yhteydessä, mutta jos menet sammuttamaan sen niin ei saa enää mitenkään ylös services.msc tai clista.

Clin avulla se hakee Ini-tiedostoja se hakee ihan väärästä paikasta eli pitääkö tuon asennuksen tekemät initiedostot siirtää sinne mistä niitä oikeasti haetaan?
Ja miksei se käytä niitä sieltä, mihin asennusohjelma on ne luonut ts. C:\ProgramData\...?
 
MySQL asennus windowsissa; kuinka turkasen manuaalinen prosessi tuo oikein on?
Palvelin käynnistyy kyllä Windows palveluna käynnistyksen yhteydessä, mutta jos menet sammuttamaan sen niin ei saa enää mitenkään ylös services.msc tai clista.

Clin avulla se hakee Ini-tiedostoja se hakee ihan väärästä paikasta eli pitääkö tuon asennuksen tekemät initiedostot siirtää sinne mistä niitä oikeasti haetaan?
Ja miksei se käytä niitä sieltä, mihin asennusohjelma on ne luonut ts. C:\ProgramData\...?

Mistä sammutat sen?
 
Mistä sammutat sen?
Windowsin palveluiden hallinnasta. Kopioin nyt tuon my.ini tiedoston sinne mistä se yrittää sitä hakea ja homma toimii.
En tiedä - varmaan kyse siitä mun tuurista, kun mikään ei ikinä ota onnistuakseen.

Seuraava ohjelmointiin liittyvä kysymys. Miksi ao. koodin määrittämä getApp metodia ei muka "löydy", kun sitä kutsutaan?
Ja sama ongelma, kun kutsun get_class_methods($obj), niin se tulostaa kiltisti kaikki muut metodit paitsi tuota yhtä eli getApp.

PHP:
public function getApp(){
        return $this->app;
    }
  
    public function routes( $path )
    {
        $app = $this->app;
        $settings = $this->settings;

        $config = function( $key, $default ) use ( $settings )
        {
            foreach( explode( '/', trim( $key, '/' ) ) as $part )
            {
                if( isset( $settings[$part] ) ) {
                    $settings = $settings[$part];
                } else {
                    return $default;
                }
            }

            return $settings;
        };

        require $path;

        return $this;
    }

get_class_methods tulostaa:
Array ( [0] => __construct [1] => routes [2] => setup [3] => getVersion )
 
Ohessa C#-ohjelma jolla luodaan tiedosto ja asetetaan ominaisuudet.

Jos tiedostolle asettaa Hidden, ReadOnly niin tiedosto on piilotettu ja vain-luku.
Mutta jos siihen lisätään tuo System, niin silloin tiedosto menee kokonaan piiloon eli edes Resurssienhallinan "näytä piilotetut kohteet" ei näytä sitä.

Mistä tuo voisi johtua? Tiedosto ei tuhoudu sillä .Exists -metodi antaa "true" eli se on olemassa jossain mutta Windowsin haku ei löydä sitä silloin.

Ainut keino jolla tuon sai takaisin näkyviin oli määritellä attribuutit uudelleen ilman System -ominaisuutta.

<code>
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Esimerkki10_2
{
class Program
{
static void Main(string[] args)
{
string tiedosto = "C:\\Temp\\loki.txt";

// Luodaan FileInfo-olio.
FileInfo fileInfo = new FileInfo(tiedosto);

if (!fileInfo.Exists) // Luo tiedoston jos sitä ei ole.
fileInfo.Create();

Console.WriteLine(fileInfo.FullName + " olemassa? " + fileInfo.Exists); // Tarkistaa onko tiedosto olemassa.

Console.WriteLine(fileInfo.Name + " luotiin " + fileInfo.CreationTime); // Tulostaa tiedoston luontiajan.

Console.WriteLine(fileInfo.Name + " -tiedoston koko on: " + fileInfo.Length); // Tulostaa tiedoston koon.

// Asetetaan attribuutit.
fileInfo.Attributes = FileAttributes.Hidden | FileAttributes.ReadOnly | FileAttributes.System;

// Tulostetaan tiedoston pääte.
Console.WriteLine(fileInfo.Name + "-tiedoston pääte on: " + fileInfo.Extension);

}
}
}
</code>
 
Ohessa C#-ohjelma jolla luodaan tiedosto ja asetetaan ominaisuudet.

Jos tiedostolle asettaa Hidden, ReadOnly niin tiedosto on piilotettu ja vain-luku.
Mutta jos siihen lisätään tuo System, niin silloin tiedosto menee kokonaan piiloon eli edes Resurssienhallinan "näytä piilotetut kohteet" ei näytä sitä.

Mistä tuo voisi johtua? Tiedosto ei tuhoudu sillä .Exists -metodi antaa "true" eli se on olemassa jossain mutta Windowsin haku ei löydä sitä silloin.

Ainut keino jolla tuon sai takaisin näkyviin oli määritellä attribuutit uudelleen ilman System -ominaisuutta.

<code>
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Esimerkki10_2
{
class Program
{
static void Main(string[] args)
{
string tiedosto = "C:\\Temp\\loki.txt";

// Luodaan FileInfo-olio.
FileInfo fileInfo = new FileInfo(tiedosto);

if (!fileInfo.Exists) // Luo tiedoston jos sitä ei ole.
fileInfo.Create();

Console.WriteLine(fileInfo.FullName + " olemassa? " + fileInfo.Exists); // Tarkistaa onko tiedosto olemassa.

Console.WriteLine(fileInfo.Name + " luotiin " + fileInfo.CreationTime); // Tulostaa tiedoston luontiajan.

Console.WriteLine(fileInfo.Name + " -tiedoston koko on: " + fileInfo.Length); // Tulostaa tiedoston koon.

// Asetetaan attribuutit.
fileInfo.Attributes = FileAttributes.Hidden | FileAttributes.ReadOnly | FileAttributes.System;

// Tulostetaan tiedoston pääte.
Console.WriteLine(fileInfo.Name + "-tiedoston pääte on: " + fileInfo.Extension);

}
}
}
</code>


Piilotetuille järjestelmätiedostoille on oma asetus: "Piilota suojatut järjestelmätiedostot" / "Hide protected operating system files (Recommended)"
 
Ei ehkä suora ohjelmointikysymys, mutta sattuisiko kukaan tietämään onko ohjelmoinnista olemassa minkäänlaisia ryhmiä tai seuroja, joissa voisi oppia koodaamaan? Itseä sekä yksi ystäväni (totaali noviisi, osaa aivan perus-perusasiat pythonista) Turun seudulla haluaisi oppia paremmin koodaamaan sellasessa mukavassa porukassa, jossa pääsisi myös tekemään yhteisiä projekteja.
 
Ei ehkä suora ohjelmointikysymys, mutta sattuisiko kukaan tietämään onko ohjelmoinnista olemassa minkäänlaisia ryhmiä tai seuroja, joissa voisi oppia koodaamaan? Itseä sekä yksi ystäväni (totaali noviisi, osaa aivan perus-perusasiat pythonista) Turun seudulla haluaisi oppia paremmin koodaamaan sellasessa mukavassa porukassa, jossa pääsisi myös tekemään yhteisiä projekteja.

En tiedä onko olemassa suoraan "koodaus-ryhmiä", mutta yleensähän tuollaista ryhmä-koodausta saa kun hakee alalle töihin ja työkavereiden kanssa voi työstää, jos yhteinen kiinnostus löytyy.

Itse suosittelen tekemään GitHubiin ja StackOverflowiin käyttikset. (sekä lukea Code of Conduct -säännöt)

GitHubissa voi ladata vapaasti toisten tekeleitä ja leikkiä niillä. StackOverflowssa saa apua erilaisiin koodi-ongelmiin.

Varsinkin GitHubissa jos löytää mielenkiintoisen projektin ja ottaa yhteyttä projektin luojaan, voi päästä mukaan projektin kehitykseen. (projektin omistaja voi vaatia jonkinlaista osaamisen näytettä).
 
Ei ehkä suora ohjelmointikysymys, mutta sattuisiko kukaan tietämään onko ohjelmoinnista olemassa minkäänlaisia ryhmiä tai seuroja, joissa voisi oppia koodaamaan? Itseä sekä yksi ystäväni (totaali noviisi, osaa aivan perus-perusasiat pythonista) Turun seudulla haluaisi oppia paremmin koodaamaan sellasessa mukavassa porukassa, jossa pääsisi myös tekemään yhteisiä projekteja.
Käykää avoimen kautta yo/amk kursseja sen mukaan mitä lompakko kestää?
 
Ei ehkä suora ohjelmointikysymys, mutta sattuisiko kukaan tietämään onko ohjelmoinnista olemassa minkäänlaisia ryhmiä tai seuroja, joissa voisi oppia koodaamaan? Itseä sekä yksi ystäväni (totaali noviisi, osaa aivan perus-perusasiat pythonista) Turun seudulla haluaisi oppia paremmin koodaamaan sellasessa mukavassa porukassa, jossa pääsisi myös tekemään yhteisiä projekteja.

En kyllä ole kuullut mistään tälläsistä yhteisöistä. Mutta nyt hän te perustatte kahdestaan ryhmän, otatte tästä materialit alkuun. :happy:
MOOC.fi

Ei ole väliä mitä tekee, kunhan vaan tekee! Ja netti on täynnä esimerkkeki koodia.
 
Joltakulta löytyy varmaankin kokemusta lomakkeista ja olioiden instansseihin liittyvän komposition tai aggregation hanskaamisesta?

Tuntuu olevan kehittäjien varassa vai löytyykö joku oikeasti älykäs kehys tai muu, joka pystyy luomaan ja käsittelemään lomakkeen, jolla luodaan instanssi tai useampi useammasta eri luokasta, jotka liittyvät toisiinsa?

Näin yhtäkkiä vaikuttaa hyvin yleiseltä käyttötapaukselta, mutta jota ei ole jostain syystä ratkaistu suoraan kehyksissä?
 
Nyt olen jumissa.

Eli on lista, joka sisältää esimerkiksi merkkijonot TUV, WXYZ, TUV tuossa järjestyksessä. Lisäksi on tiedosto, josta pitäisi etsiä kaikki sanat, joiden eka kirjain alkaa kirjaimilla t, u tai v ja toinen kirjain on w, x, y tai z ja kolmas kirjain pitää olla taas t, u tai v. Tuon pitää myös toimia minkä tahansa kokoisella listalla, eli merkkijonoja listassa voi olla yhdestä äärettömään.

Scanneria käytän tiedoston lukemiseen ja se toimii, mutta en vain keksi algoritmia, joka osaa verrata listan ekan merkkijonon merkkejä tiedoston rivien ekaan kirjaimeen ja niin edelleen.

Apuja? Kielenä java. Toivottavasti osasin selittää tarpeeksi hyvin.
 
Nyt olen jumissa.

Eli on lista, joka sisältää esimerkiksi merkkijonot TUV, WXYZ, TUV tuossa järjestyksessä. Lisäksi on tiedosto, josta pitäisi etsiä kaikki sanat, joiden eka kirjain alkaa kirjaimilla t, u tai v ja toinen kirjain on w, x, y tai z ja kolmas kirjain pitää olla taas t, u tai v. Tuon pitää myös toimia minkä tahansa kokoisella listalla, eli merkkijonoja listassa voi olla yhdestä äärettömään.

Scanneria käytän tiedoston lukemiseen ja se toimii, mutta en vain keksi algoritmia, joka osaa verrata listan ekan merkkijonon merkkejä tiedoston rivien ekaan kirjaimeen ja niin edelleen.

Apuja? Kielenä java. Toivottavasti osasin selittää tarpeeksi hyvin.
Koodi:
(tiedosto[i+0]== t | u |v) && (tiedosto[i+1]== w | z | y |z) && (tiedosto[i+2]== t | u |v)
Tossa vähän apua.

Edit: Korjailua.
Edit: Viel pienet korjailut.
 
Viimeksi muokattu:
Nyt olen jumissa.

Eli on lista, joka sisältää esimerkiksi merkkijonot TUV, WXYZ, TUV tuossa järjestyksessä. Lisäksi on tiedosto, josta pitäisi etsiä kaikki sanat, joiden eka kirjain alkaa kirjaimilla t, u tai v ja toinen kirjain on w, x, y tai z ja kolmas kirjain pitää olla taas t, u tai v. Tuon pitää myös toimia minkä tahansa kokoisella listalla, eli merkkijonoja listassa voi olla yhdestä äärettömään.

Scanneria käytän tiedoston lukemiseen ja se toimii, mutta en vain keksi algoritmia, joka osaa verrata listan ekan merkkijonon merkkejä tiedoston rivien ekaan kirjaimeen ja niin edelleen.

Apuja? Kielenä java. Toivottavasti osasin selittää tarpeeksi hyvin.

Pseudokoodina sinne päin koska en muista varmasti syntaksia:
String re;
for (String str : lista) {
re= re+ '[' + str + ']';
}

Matcher m=Pattern.compile('\b' + re).matcher(input)

// tai streamina jos iso tiedosto

List<String> matches = new ArrayList<>();
while (m.find()) {
matches.add(m.group(0));
}
 
Ei vain suju. Selitän koko jutun nyt tarkemmin :D

Eli ideana on perinteinen kännykän näppäimistö ja yhtä näppäintä painamalla hakee kaikilla kirjaimilla, mitä sen numeronäppäimen takana on. Esimerkiksi painamalla 258 hakee listasta merkkijonoja, joiden eka kirjain on A, B tai C, toinen kirjain J, K tai L ja kolmas T, U, V.

Jos listassa olisi vaikka merkkijono AKU ANKKA tai ALUSTA, ohjelma osaa hakea ne noilla tiedoilla. Numeroita pitää pystyä myös syöttämään yhdestä rajattomaan.

Kunnon silmukoilla ja ehtolauseilla koko illan pähkäillyt, mutta en saanut mitään kunnolla toimivaa aikaan. Nuo kirjaimet laitoin taulukkoon ja taulukon indeksi vastaa näppäimen numeroa.
 
Toimisiko tämä, en testannut. Tämän lisäksi sitten funktio, joka etsii seuraavan sanan tiedostosta ja syöttää sen tälle funktiolle.

Koodi:
public bool stringStartsWith(String s, List<String> charList) {
  if (s.length() > charList.length())
    return false;

  int i = 0;
  for (String chars : charList) {
    bool found = false;
    char stringChar = s.charAt(i++));
    for (char c : chars.toCharArray()) {
      if (c == stringChar) {
        found = true;
        break;
      }
    }
    if (!found)
     return false;
  }
  return true;
}

String line = ...
List<> charList = new ArrayList<>({"TUV",  "WXY", "TUV"});
if (stringStartsWith(line, charList)) {
  ...
 

Uusimmat viestit

Statistiikka

Viestiketjuista
261 628
Viestejä
4 537 328
Jäsenet
74 856
Uusin jäsen
KeisariLoL

Hinta.fi

Back
Ylös Bottom