Nämä asiat hukassa

1. Edit-boxeihin syötettyjen lukujen muunto Stringistä floatiksi eli niin että niillä pystyy suorittamaan laskutoimituksia?

2. Lomakkeen tietojen tallentaminen (edit, label) sovelluksen seuraavaa käyttökertaa silmälläpitäen?

3. Lomakkeen tietojen tulostaminen paperille?
6532
Äänestä

Muut lukivat myös

Vastaukset 6

Vanhimmat

Mistä kyse? C#, MFC vai WinAPI?

Äänestä
  • mainita että käytän Borland C - Builder 4 -ohjelmaa ja teen sillä uutta applicationia

    Äänestä

1.
#include
StrToFloatDef

2.
En ymmärrä mitä tarkoitat mutta ehkä:
TIniFile
Vanha kunnon windows ini file, ei kannata sotkea rekisteritä mukaan. Lataaminen tiedostosta formin OnShow metodiin ja tallennus OnClose tai OnHide metodiin.

3.
TPrinter
esimerkkejä löytyy manuaalista TPrinter Canvas kohdasta

Äänestä
  • Editboxista saa sisällön helpomminkin floatiksi:

    double dValue;
    dValue = EditBox->Text.ToDouble();

    Jossa EditBox on boxin nimi.

    Äänestä

  • box kirjoitti:

    Editboxista saa sisällön helpomminkin floatiksi:

    double dValue;
    dValue = EditBox->Text.ToDouble();

    Jossa EditBox on boxin nimi.

    Noi tulostamis-ja tallennusjutut on mulle kyllä ihan vierasta. Voisko joku antaa yksityiskohtaset ohjeet ja koodit niistä? Myös hyödylliset linkki-ja kirjavinkit ovat tervetulleita.

    Äänestä

  • Ruosteessa kirjoitti:

    Noi tulostamis-ja tallennusjutut on mulle kyllä ihan vierasta. Voisko joku antaa yksityiskohtaset ohjeet ja koodit niistä? Myös hyödylliset linkki-ja kirjavinkit ovat tervetulleita.

    -Lomakkeen sisältämät tiedot tallennetaan "omaan" tietokantaan tulot.txt
    Tiedot luetaan tekstitiedostoon Tulosfile.txt ja avataan samantien(Notepad)
    Esimerkki on tarkoitettu ikäänkuin osviitaksi ja sitä voidaan muuttaa
    omien tarpeitten mukaan.Yleensä käytetään funktioita ja näistäkin voi
    sellaiset tehdä - avattava tiedosto parametriksi-tai voi kasata oman
    luokan.Käytössä c Builder 6 Personal Edition mutta kääntyy sinullakin.
    -Tässä ei ole tietueen muuttamista ja deletointia.
    -Lomakkeella komponentit: 3 tekstiboxia,1 StringGrid 3 CommandButtonia.
    Aseta ne lomakkeelle ja kirjoita annetut koodit,niin pitäisi toimia.
    -Pitäisi käyttää esim. muotoa ios_base::binary ei pelkkä ios::binary,mutta
    en tiedä onko nelosversiossa.Myöskään namespacea ei ole käytetty.
    -Tiedostoa ei lueta lomakkeen auetessa griidiin - pitää painaa Command-Buttonia,
    Tästä on kuitenkin hyvä lähteä opiskelemaan lisää.


    //Unit1.h
    //*******
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include
    #include
    #include
    #include
    #include
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:   // IDE-managed Components
    TButton *button1_plustietue;
    TEdit *Edit1;
    TEdit *Edit2;
    TEdit *Edit3;
    TButton *Button2_luetiedot;
    TStringGrid *StringGrid1;
    TButton *Button_tulosta;
    void __fastcall button1_plustietueClick(TObject *Sender);
    void __fastcall Button2_luetiedotClick(TObject *Sender);
    void __fastcall StringGrid1Click(TObject *Sender);
    void __fastcall Button_tulostaClick(TObject *Sender);
    private:   // User declarations
    public:      // User declarations
    __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    struct testi
    {
    char nimi[40];
    char vero[10];
    };
    #endif

    //---------------------------------------------------------------------------

    //Unit1.cpp
    //*********
    #include
    #include
    #include
    #include
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    //Lisätään tietue
    void __fastcall TForm1::button1_plustietueClick(TObject *Sender)
    {
    //Onko luku double - jos ei niin virheilmoitus
    //----------------------------------------------
    double temp1,temp2;
    temp1=Edit2->Text.ToDouble();
    temp2=100,33*temp1;
    temp2 ;
    //----------------------------------------------
    fstream tulos;//Avataan virta
    String tiedosto="tulot.txt";
    testi kirjaus;//Otetaan structi käyttöön(Unit1.h)
    //Avataan tai luodaan binääritiedosto kirjoitettavaksi
    tulos.open(tiedosto.c_str(),ios::out | ios::binary | ios::app);
    strcpy(kirjaus.nimi,Trim(Form1->Edit1->Text).c_str());
    strcpy(kirjaus.vero,Trim(Form1->Edit2->Text).c_str());
    tulos.write((char*) & kirjaus,sizeof kirjaus);
    tulos.close();//Tiedot kirjoitettu
    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::Button2_luetiedotClick(TObject *Sender)
    {
    StringGrid1->OptionsFixedCols=0;//StringGrid
    Form1->StringGrid1->ColCount=2;//StringGrid sarakkeet kpl
    Form1->StringGrid1->ColWidths[0]=300;//Ekasarakkeen leveys
    Form1->StringGrid1->ColWidths[1]=100;//Tokasarakkeen leveys
    //Otsikot StringGriidiin
    Form1->StringGrid1->Cells[0][0]=String("Nimi");
    Form1->StringGrid1->Cells[1][0]=String("Vero");

    fstream luku;//Avataan virta
    String tiedosto="tulot.txt";
    testi lue;//Otetaan structi käyttöön
    int tietueet=0;//Tietuelaskuri
    double verosumma=0;//Verot yhteensä
    if(FileExists(tiedosto.c_str()))
    {
    //Avataan binääritiedosto luettavaksi
    luku.open(tiedosto.c_str(),ios::in | ios::binary);
    while(luku.read((char*)&lue,sizeof (lue)))
    {
    Form1->StringGrid1->RowCount=tietueet 2;
    tietueet ;//Montako tietuetta
    Form1->StringGrid1->Cells[0][tietueet]=String(lue.nimi);
    Form1->StringGrid1->Cells[1][tietueet]=String(lue.vero);
    verosumma =String(lue.vero).ToDouble();//Verojen summa
    }
    luku.close();//Tiedot luettu
    Form1->Edit3->Text=verosumma;//Kirjoitetaan tekstiboxiin
    }//if
    else ShowMessage("Lisää ensin tietueita");
    }

    //---------------------------------------------------------------------------

    void __fastcall TForm1::StringGrid1Click(TObject *Sender)
    {
    //Nimi tekstiboxiin griidistä
    Form1->Edit1->Text=Form1->StringGrid1->Cells[0][StringGrid1->Row];
    //Vero tekstiboxiin griidistä
    Form1->Edit2->Text=Form1->StringGrid1->Cells[1][StringGrid1->Row];
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button_tulostaClick(TObject *Sender)
    {
    /*
    //TULOSTETAAN TIEDOSTON SISÄLTÖ = Avataan Notepadissä
    struct testi Unit1.h - headerissä
    {
    char nimi[40];
    char vero[10];
    };
    */

    testi lue;//Otetaan structi käyttöön
    String tiedosto="tulot.txt";//Source file
    if(FileExists(tiedosto.c_str()))
    {
    fstream luku;//Avataan virta
    String tiedosto="tulot.txt";

    ofstream tulos;
    String tulosfile="Tulosfile.txt";//Destination file

    tulos.open(tulosfile.c_str(),ios::trunc);
    tulos.close();

    tulos.open(tulosfile.c_str(),ios::app);
    luku.open(tiedosto.c_str(),ios::in | ios::binary);
    while(luku.read((char*)&lue,sizeof (lue)))
    {
    tulos

    Äänestä

Kommentoi aloitusta


Ruosteessa kirjoitti:

1. Edit-boxeihin syötettyjen lukujen muunto Stringistä floatiksi eli niin että niillä pystyy suorittamaan laskutoimituksia?

2. Lomakkeen tietojen tallentaminen (edit, label) sovelluksen seuraavaa käyttökertaa silmälläpitäen?

3. Lomakkeen tietojen tulostaminen paperille?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu