Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  17 2349
Jeg er en av de som alltid har sverget til .bat scripting, hittil har jeg alltid klart og løse utfordringene mine med dette. Jeg har stort sett brukt .bat scripting til automatisering, dette være seg et script som gjør diverse ting for meg etter re-installasjon av pc'en, editering i registeret, sikkerhetskopiering av data/databaser, automatisk sletting av filer eldre enn x antall dager osv.
Alt dette har jeg kunne gjort med .bat, noen ganger møter jeg utfrodringer som vanligvis løser seg ved å putte en add-on .exe fil i samme mappe som .bat scriptet.

En av tingene som gjør at jeg har vanskeligheter med å gå bort ifra dette, er at .bat script kun er avhengig av filen(e) du har i mappen scriptet kjøres fra. De samme scriptene fungerer i stor grad på både Win2k/XP/Vista.

De gangene jeg har prøvd meg på Python/C# eller C++ så er det alltid slik at jeg ikke får kjørt programmene på en annen PC uten at f.eks. Net framework/Python/Visual Studio er installert. Jeg får inntrykk av at det er så mange avhengigheter, og stoler ikke helt på det.
------------------------------------------------------------------------------------------------

Det ble mye snikk-snakk, men jeg har altså tenkt til å våge meg ut til å starte på et ordentlig programmeringspråk igjen. Jeg lurer rett og slett på hva jeg skal lage, jeg har lyst til å lage noe med en viss nytteverdi - og da ender jeg stort sett opp meg å tenke på programmer som kanskje er langt mer avanserte enn det jeg bør starte på med et nytt programmeringsspråk.

Jeg kunne f.eks. gjerne ha tenkte meg å laget et backup-program, som kan kjøres både som et grafisk grensesnitt, og som en prosess med en forhåndsdefinert jobb som f.eks. kjøres x ganger i uka.


Jeg har lyst til å lage et program som ikke kan lages med .bat scripting, slik at jeg får se begrensningene jeg har ved å fortsette med .bat scriptingen.

Noen som har noen tips til et motiverende prosjekt å begynne på? Evt. noen tips for hvilket av disse språkene jeg bør velge utifra det jeg skriver?
Siden du allerede har erfaring i å programmere, vil du kunne lære nye programmeringsspråk raksere.
Jeg går nå på informatikk på universitetet, jeg sliter med C, men når jeg kommer meg gjennom studiet vet jeg at jeg har erfaringen som trengs for å begynne med andre programmeringsspråk...
Som f.eks. Java, Python og C#

Jeg hadde begynt med C eller Java, de kan gjøre masse.

Sjekk også ut denne tråden: Starte med programering

Lykke til
Sist endret av Turbolego; 14. oktober 2008 kl. 12:52.
Sitat av Turbolego
Jeg går nå på informatikk på universitetet, jeg sliter med C, men når jeg kommer meg gjennom studiet vet jeg at jeg har erfaringen som trengs for å begynne med andre programmeringsspråk...
Vis hele sitatet...
Beklager å måtte skuffe deg, men følger du kun fagene og ikke gir deg ut på større programmeringsprosjekter utenom skolen vil du bare ha et overfladisk grunnlag og svært lite erfaring.

Veldig få går rett fra universitetsutdannelse til en programmeringsjobb.
jeg kan ingenting om detta. men fatters bruker MSI til mye av det du bruker dine bat til. Lett og lage og har vel også kanskje blitt det som kanskje erstatter bat seinere.
Jeg anbefaler at du begynner med Python. Det er svært enkel syntaks, og kan lett oversettes til mer obskure språk som C, C++ og Java. Learn Python in 10 minutes.
Trådstarter
Turbolego: Takk for svar, jeg har lest endel rundt på forumet, og jeg har forstått det slik at en av fordelene med Java er at man kun har èn måte å gjøre ting på, istedenfor 10 - slik at man på denne måten blir tvunget til å skrive riktig kode. Dette er viktig for meg, men jeg trodde ikke Java var beregnet på desktop applikasjoner?


Et lite tilleggspørsmål her, jeg bare svippet litt innom C++ igjen her, og lurte på om det var mulig å få en forklaring på hvordan jeg kan gjøre .exe filen man kompilerer uavhengig av at man må ha Visual Studio installert på PCen man kjører .exe filen på.

Ta følgende kode som eksempel:
#include "stdafx.h"
#include <iostream>

using namespace std;
int main()
{
cout<<"HEY, you, I'm alive! Oh, and Hello World!\n";
cin.get();
}
Vis hele sitatet...
Fjern stdafx.h.
Det er et VS-bibliotek.
Ikke for å skuffe deg, men skal du f.eks lage et backup program som ditt første program uten noen andre programmerings kunnskaper kommer dette til å ta LANG tid og sannsynligheten for at du går lei før du er ferdi er stor.

Jeg vil anbefalle at du går over på noe litt lettere. Hva med å starte i PHP? (Webprogrammering), webprogrammering er mye lettere å starte med, og i tillegg så for du en vis forståelse for hvordan programmering fungerer å hvordan man bygger det opp.
Når du starter med språk som c++, så kan man allerede prinsippan og oppbygginga :P Da er det mye lettere å starte med programmering.

PHP: W3schools.org Her har du en referanse side for PHP, veldig enkel og grei å slå opp.
Trådstarter
Sitat av Goophy
Fjern stdafx.h.
Det er et VS-bibliotek.
Vis hele sitatet...
Takk, sjekket opp stdafx.h på wikipedia, står som du sier at dette er en fil som blir generert av VS IDE Wizarden. Men hvorfor vil ikke programmet kjøre på en annen PC dersom denne er inkludert? Er det slik at denne kun gjør endringer i koden, uten å egentlig "integrere" filene som faktisk tilhører den for at man skal kunne kjøre den?

Hvordan er det f.eks. dersom man inkluderer biblioteker som er avhengig av diverse filer for å kunne kjøres på en annen PC? Er det noen måte å inkludere disse filene i .exe filen?

Sitat av Masi
Jeg vil anbefalle at du går over på noe litt lettere. Hva med å starte i PHP? (Webprogrammering), webprogrammering er mye lettere å starte med, og i tillegg så for du en vis forståelse for hvordan programmering fungerer å hvordan man bygger det opp.
Når du starter med språk som c++, så kan man allerede prinsippan og oppbygginga :P Da er det mye lettere å starte med programmering.

PHP: W3schools.org Her har du en referanse side for PHP, veldig enkel og grei å slå opp.
Vis hele sitatet...
Takk for svar, jeg har endel erfaring med PHP, har laget en database i MySQL som presenteres og behandles fra PHP grensesnitt. Det er i utgangspunktet desktop programmering som er målet mitt

Jeg kan tenke meg at jeg vil stå ovenfor endel utfordringer med backup-programmet som jeg nevnte, men tror du dette gjelder dersom jeg fjerner GUI fra kriteriet? Noe alà robocopy?
Hvis du allerede har en del erfaring med php, så er vel C++ ett fint sted å starte. Har ikke du noen ideer om no lettere program du kan lage? En enkel kalkulator, en liten texteditor eller noe sånt?
Python eller c# er kansje det beste valget i dag.
Jeg mener python er et valg du aldrig vil angre på.

Litt info hvorfor det er et bra valg.
http://www.stanford.edu/~pgbovine/python-teaching.htm
http://www.ferg.org/projects/python_...e-by-side.html

Kan ta litt mere om en bra ide editor og litt code for og hjelpe deg i gang viss du er interessert.
Sist endret av snippsat; 14. oktober 2008 kl. 14:23.
Trådstarter
Sitat av Masi
Hvis du allerede har en del erfaring med php, så er vel C++ ett fint sted å starte. Har ikke du noen ideer om no lettere program du kan lage? En enkel kalkulator, en liten texteditor eller noe sånt?
Vis hele sitatet...
Jo, kan selvsagt lage noe lettere. Det første målet mitt er imidlertid og få programmet mitt til å kjøre uavhengig av å ha Visual Studio e.l. installert. Når jeg forsøkte å kjøre .exe filen fra koden litt lenger opp i tråden på en PC med en ren XP installasjon så får jeg en feil som sier "Programmet kunne ikke starte fordi programkonfigurasjonen er feil", selvom jeg gjorde som Goophy sa.

Sitat av snippsat
Python eller c# er kansje det beste valget i dag.
Jeg mener python er et valg du aldrig vil angre på.

Litt info hvorfor det er et bra valg.
http://www.stanford.edu/~pgbovine/python-teaching.htm
http://www.ferg.org/projects/python_...e-by-side.html

Kan ta litt mere om en bra ide editor og litt code for og hjelpe deg i gang viss du er interessert.
Vis hele sitatet...
Jeg har kikket litt på Python, synes syntaxen ser veldig enkel og oversiktelig ut. Takk for linken, hjalp å se sammenligningen med Java og Python

Jeg har hørt at Python er et "script-språk", vil dette ha noen betydning i praksis? Hvordan er det forresten med Python og avhengighet til filer? Jeg har testet cx_Freeze som fungerte helt fint, er dette måten man gjør det på med python?
Jeg har hørt at Python er et "script-språk", vil dette ha noen betydning i praksis?
Vis hele sitatet...
Nei det har ikke noe og si.

Hvordan er det forresten med Python og avhengighet til filer?
Vis hele sitatet...
Gjøre om py filer til exe er lett.
Du har cx_Freeze og py2exe.
Det er lagd enkle program som bruker disse moduler til og gjøre om py til exe.

Jeg skal ta mere om dette imorgen.
Da tar jeg med oppsett av python med en bra gratis ide editor.
Poster noen kode eksempler,vi gjør om et eksempel til exe.
Tar kansje med et enkelt gui oppsett.
Nå virker du jo som en oppegående person med egenskaper til å løse problemstillinger i forhold til de kunnskapene du besitter. Dette er alltid et godt tegn når det kommer til problemløsning. Så jeg antar at du faktisk forstår litt hva det vil si å programmere, at et program blir skapt av syntax og logikk og alt som hører med dette.

Det virker som om du ønsker å kunne produsere noe som kan vise resultat kjapt og effektivt. Samtidig som det ikke skal kreve veldig mye å kunne sette opp et grafisk grensesnitt og knytte programlogikk til dette.

Slik det er med C og C++, ender man ofte opp med å skrive små konsollprogram som egentlig ikke kan gjøre spesielt mye. I alle fall i begynnelsen. Ja, jeg er smertelig klar over at det finnes veier for å kunne lage grafisk grensesnitt i både C og C++, men det er ikke poenget mitt. Nå oversimplifiserer jeg en del med vilje.

Jeg vil på bakgrunn av mine egne erfaringer anbefale deg å ta en titt på C#. Dette er et språk som jeg daglig utviker i i sammenheng med jobb til både små og store prosjekt. Det er et høynivåspråk som mest kan sammenlignes med Java (men i min mening er et mye bedre språk). Her vil du kunne benytte deg av Microsoft sitt glimrende IDE (google it) Visual Studio som jeg anser som overlegen hva utvikling angår. I C# forteller du ved hjelp av koden hva du ønsker å gjøre, kontra i mer lavnivåspråk må du ofte tilrettelegge alt selv. Noe som selvfølgelig også kan være en fordel, men det er ikke alltid man ønsker å måtte tenke på minnehåndtering og allskens humbug, når man egentlig mest bare har lyst til å se et resultat av det man gjør.

Grafisk grensesnitt blir en lek, selv om jeg vil anbefale deg å mestre selve språket før du går inn på grafisk grensesnitt.

Just my 1808 bytes.
Trådstarter
Sitat av snippsat
Nei det har ikke noe og si.


Gjøre om py filer til exe er lett.
Du har cx_Freeze og py2exe.
Det er lagd enkle program som bruker disse moduler til og gjøre om py til exe.

Jeg skal ta mere om dette imorgen.
Da tar jeg med oppsett av python med en bra gratis ide editor.
Poster noen kode eksempler,vi gjør om et eksempel til exe.
Tar kansje med et enkelt gui oppsett.
Vis hele sitatet...
Høres bra ut, ellers har jeg kikket litt på det i kveld, og det virker jo ganske greit. Jeg prøvde imidlertid og hoppe over på noe av litt høyere nytteverdi, f.eks. å stoppe en Windows prosess, jeg fant etter litt googling et library som heter win32all, og brukte denne kildekoden.
Jeg forstår at man skal bruke kommandoen "cvs = WService.WService("spoolsv.exe")" for å definere prosessen man skal behandle, med jeg vet ikke hvor jeg skal plassere denne kommandoen?

Sitat av |d13m0b
Nå virker du jo som en oppegående person med egenskaper til å løse problemstillinger i forhold til de kunnskapene du besitter. Dette er alltid et godt tegn når det kommer til problemløsning. Så jeg antar at du faktisk forstår litt hva det vil si å programmere, at et program blir skapt av syntax og logikk og alt som hører med dette.

Det virker som om du ønsker å kunne produsere noe som kan vise resultat kjapt og effektivt. Samtidig som det ikke skal kreve veldig mye å kunne sette opp et grafisk grensesnitt og knytte programlogikk til dette.

Slik det er med C og C++, ender man ofte opp med å skrive små konsollprogram som egentlig ikke kan gjøre spesielt mye. I alle fall i begynnelsen. Ja, jeg er smertelig klar over at det finnes veier for å kunne lage grafisk grensesnitt i både C og C++, men det er ikke poenget mitt. Nå oversimplifiserer jeg en del med vilje.

Jeg vil på bakgrunn av mine egne erfaringer anbefale deg å ta en titt på C#. Dette er et språk som jeg daglig utviker i i sammenheng med jobb til både små og store prosjekt. Det er et høynivåspråk som mest kan sammenlignes med Java (men i min mening er et mye bedre språk). Her vil du kunne benytte deg av Microsoft sitt glimrende IDE (google it) Visual Studio som jeg anser som overlegen hva utvikling angår. I C# forteller du ved hjelp av koden hva du ønsker å gjøre, kontra i mer lavnivåspråk må du ofte tilrettelegge alt selv. Noe som selvfølgelig også kan være en fordel, men det er ikke alltid man ønsker å måtte tenke på minnehåndtering og allskens humbug, når man egentlig mest bare har lyst til å se et resultat av det man gjør.

Grafisk grensesnitt blir en lek, selv om jeg vil anbefale deg å mestre selve språket før du går inn på grafisk grensesnitt.

Just my 1808 bytes.
Vis hele sitatet...
Flott svar Jeg har sett noen av innleggene dine når jeg har søkt litt rundt på programmer, det er en av grunnene til at dette er et av språkene jeg har i tankene. Det med det grafiske er selvsagt et stort pluss, jeg har allerede kikket litt på MS Visual Studio C# i dag. Jeg forstår hva du mener med å holde seg litt unna GUI i starten, jeg tror jeg skal prøve meg litt på Python og C# i morgen, finne ut hva som passer meg best.
Trådstarter
Jeg lærer ofte best av å lese guider på engelsk, for så å omskrive det til norsk. Grunnen til dette er at jeg er nødt til å forstå alle ledd av det jeg leser for å kunne oversette det på en bra måte.

Jeg lurte på om du |d13m0b (eller noen andre) kunne kikket på dette, og sett om det er noe jeg har missforstått?

using System;

class VelkommenCSS
{
static void Main()
{
Console.WriteLine("Velkommen til denne guiden");
Console.ReadLine();
}
}
Vis hele sitatet...
Linje 1: using System;
Denne linjen (namespace) forteller kompilatoren at den skal bruke en gruppe funksjoner som en del av biblioteket (System). Ved å inkludere denne linjen øverst i filen så gjør du at programmet tillater enklere bruk av kommandoer, et eksempel på dette er at du slipper å skrive System.Kommando.

Linje 2: class VelkommenCSS
Denne linjen erklærer klassen VelkommenCSS, en klasse inneholder data og metode-definisjoner som programmet ditt bruker for å kjøre. En klasse er én av flere ulike typer elementer du kan bruke til å beskrive objekter, for eksempel Structs, Interfaces, Delegates, og Enums. Denne klassen inneholder imidlertid ingen data, men den inneholder metoden (main) som definerer oppførselen til klassen.

Linje 3: {
Dette tegnet betegner starten av klassen (VelkommenCSS).

Linje 4: static void main()
Denne linjen definerer metoden (main), som er "inngangspunktet" (entry point) til programmet. Denne metoden definerer hva programmet skal gjøre når det startes. Hvis du noensinne får en kompilator feilmelding som sier at det ikke kan finne entry point, betyr det at du prøvde å kompilere et kjørbart program uten en Main-metoden.

Linje 5: {
Dette tegnet betegner starten av metoden (main).

Linje 6: Console.WriteLine("Velkommen til denne guiden");
Main metoden definerer oppførselen med Console.WriteLine, Console er en klasse i System namespacet, WriteLine(...) er en metode i Console klassen. Dersom vi ikke hadde hatt med namespacet System så måtte vi ha skrevet System.Console.WriteLine(...). Altså (namespace).(klasse).(metode).

Linje 7: Console.ReadLine();
Denne kommandoen er en metode i Console klassen som gjør at vinduet ikke lukkes.

Linje 7: }
Dette tegnet betegner slutten av metoden (main).

Linje 8: }
Dette tegnet betegner slutten av klassen (VelkommenCSS).

EDIT:
Er et namespace en fysisk fil/bibliotek som ligger under en mappe i Visual Studio? Er det slik at man isåfall er nødt til å ha disse filene for å kunne kjøre f.eks. System.Console.WriteLine ?
Sist endret av f00b; 15. oktober 2008 kl. 12:11.
Ja se litt på C# net er ikke dumt,svar regner jeg med |d13m0b tar seg av.
Jeg har lenge hatt lyst og se mere på C#.
Ok da tar jeg med et greit python oppsett tar det litt basic så andre som har lyst og prøve python kan gjøre et forsøk.

-------------------------------Opsett av Python-------------------------
Last ned Python 2.6
Last ned Wxpython for python 2.6
Last ned Pywin32

----------------------------------Ide editor----------------------------------
Last ned Komodo edit
Et skjermbilde nå har jeg betalversjonen,men regner med at det er nogenlunde likt.
Komodo er er en bra mulitspråk editor(htlm,php,xml,java,ruby,c,c++ o.s.v)
Greit og ha en editor som tar flere spåk.
http://bildr.no/thumb/271231.jpeg

-----------------------------------Opsett av cmd--------------------------------
Her setter vi opp cmd så pyhon idle kan kjøres derfra.
Start->kjør->sysdm.cpl
http://bildr.no/thumb/271243.jpeg
Lim inn fet tekst i path ;c:\python26;c:\python26\scripts;


Virker det skal dette kunnes gjøres i cmd.
Start->kjør->cmd
http://bildr.no/thumb/271246.jpeg

-------------------------------------Litt Kode-----------------------------------------
Her tar jeg meg litt kode lett mix noe fra meg og noe fra nettet.
Vi starter med en som kan kalles en klassiker gjette på tall.

Kode

#!/usr/bin/env python
#gjette pa tall spill
import random                  #importer en modul fra python

num = random.randint(0, 99)    #lager et random tall mellom 0, 99
guess = None                   #ikke gjettet ennaa                 
tries =  1                     #tar med forsok

while guess !=num:             #Vil kjore loop saa lenge guess ikke er lik num
    guess = input ("Gjett pa tall imellom 1 og 100:")
    if guess < num:
        print "tallet er for lavt"
    elif guess > num:
        print "tallet er for hoyt"
    tries = tries + 1
    
print "riktig tall er gjettet:",num ,"pa:",tries, "forsok"
Output.

gjett pa tall imellom 1 og 100:50
tallet er for hoyt
Gjett pa tall imellom 1 og 100:25
tallet er for lavt
Gjett pa tall imellom 1 og 100:35
tallet er for lavt
Gjett pa tall imellom 1 og 100:40
tallet er for lavt
Gjett pa tall imellom 1 og 100:45
tallet er for hoyt
Gjett pa tall imellom 1 og 100:43

Riktig tall er gjettet: 43 pa: 7 forsok
------------------------------------------
------------------------------------------

Tar med et par eksempler til av kode som er skrever inne i en funksjon.
Det fine med dette er at koden ikke blander seg.
Vi lager en meny og kaller på den funksjon vi vil ha.

Kode

import random

def rull():  #Definerer en funksjon
    t1 = (random.randrange(6) + 1)
    t2 = (random.randrange(6) + 1)
    print "terning 1 fikk:",t1 ,"terning 2 fikk:",t2 ,"Total sum: ",t1 +t2
rull()       #kaller koden som er skrevet inn i funksjonen
Output.

Terning 1 fikk: 2 Terning 2 fikk: 6 Total sum: 8
------------------------------------------------------
------------------------------------------------------

Her legger vi til et par funksjoner til og lager en meny.

Kode

import random

def meny():
    print '(1) Renger ut arial'
    print '(2) Regner ut sum av 2 terninger'
    print '(3) Konverterer grader til farenheit'

    
def valg():
    meny()
    choice = input('Enter et valg:')
    if (choice == 1):
        area()
    elif (choice == 2):
        rull()       
    elif (choice == 3):
        temp()
    else:
        print "Feil valg",choice
    print "slutt"    


def area():   
    bredde = input ("skriv in bredde:")
    hoyde  = input ("skriuv inn hoyde:")
    print "arial er:", bredde * hoyde


def rull():  
    t1 = (random.randrange(6) + 1)
    t2 = (random.randrange(6) + 1)
    print "Terning 1 fikk:",t1 ,"Terning 2 fikk:",t2 ,"Total sum:",t1 + t2
        

def temp():
    grader    = input ('skriv inn temp:')
    farenheit = (9.0 / 5.0) * grader + 32;
    print grader, 'grader er:', farenheit, 'farenheit'

valg()
Output.

(1) Renger ut arial
(2) Regner ut sum av 2 terninger
(3) Konverterer grader til farenheit
Enter et valg:3
skriv inn temp:55
55 grader er: 131.0 farenheit
slutt
---------------------------------------
---------------------------------------

Her gjør vi om en adressebok til exe.

Kode

filename = "addbook.dat"

def readBook(book):
    import os
    if os.path.exists(filename):
       store = open(filename,'r')
       for line in store:
          name = line.rstrip()
          entry = store.next().rstrip()
          book[name] = entry
       store.close()

def saveBook(book):
    store = open(filename, 'w')
    for name,entry in book.items():
        store.write(name + '\n')
        store.write(entry + '\n')
    store.close()

def getChoice(menu):
    print menu
    choice = int( raw_input("valg (1-4): ") )
    return choice

def addEntry(book):
    name = raw_input("Skiv navn: ")
    entry = raw_input("mobil: ")
    book[name] = entry

def removeEntry(book):
    name = raw_input("Skriv navn: ")
    del(book[name])
  

def findEntry(book):
    name = raw_input("Skriv navn: ")
    if name in book:
       print name, book[name]
    else: print "Sorry,ikke noe data for: ", name

def main():
    theMenu = '''
    1) Legg til data
    2) Fjern data
    3) Finn data
    4) Ferdig
    '''
    theBook = {}
    readBook(theBook)
    choice = getChoice(theMenu)
    while choice != 4:
        if choice == 1:
            addEntry(theBook)
        elif choice == 2:
            removeEntry(theBook)
        elif choice == 3:
            findEntry(theBook)
        else: print "Feil "
        choice = getChoice(theMenu)
    saveBook(theBook)

if __name__ == "__main__":
    main()
Output

1) Legg til data
2) Fjern data
3) Finn data
4) Ferdig

valg (1-4): 1
Skiv navn: test
mobil: 55444444

1) Legg til data
2) Fjern data
3) Finn data
4) Ferdig

valg (1-4): 3
Skriv navn: test
test 55444444

1) Legg til data
2) Fjern data
3) Finn data
4) Ferdig

valg (1-4):
------------------------------
------------------------------

Last ned Py2exe
Last ned Gyp2exe
http://bildr.no/thumb/271344.jpeg
Her er det bare og velge py-fil og skrive info eventuelt velge ikon.
Og finne en plass der du vil at exe-filen skal lagres.

Håper dette var en grei innføring i python.
Skal ta med et eksp på GUI med wxpython senere.
Trådstarter
Sinnsykt bra! Tusen takk!