Englischvokabelverwalter

Tutorials.at
Verfügbare Informationen zu "Englischvokabelverwalter"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Dragorad - exbs - AQE89
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: Pascal
  • Antworten: 6
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Englischvokabelverwalter
  • Letzte Antwort: vor 17 Jahren, 5 Monaten, 6 Tagen, 5 Stunden, 13 Minuten
  • Alle Beiträge und Antworten zu "Englischvokabelverwalter"

    Re: Englischvokabelverwalter

    Dragorad - 23.10.2006, 20:52

    Englischvokabelverwalter
    Hi,

    ich hab' mal ein Vokabelverwalter programmiert und wollte mal wissen, wie ihr ihn so findet!

    Hier der Quelltext:


    Code:
    program   vokabelverwalter_1;
    uses      crt,uminout;
    const     esc=#27;
              hardflag:boolean=true;
    type      datensatztyp=record
               voc_engl:string[27];
               voc_d:string[27];
              end;
              karteityp=file of datensatztyp;
    var       karteidaten:datensatztyp;
              kartei:karteityp;
              karteinr,i:integer;
              m1,m2,m3,m4,nr:word;

    {------------------------------------------------------------------------}

    PROCEDURE Maus;
              ASSEMBLER;
              ASM
               MOV AX,m1
               MOV BX,m2
               MOV CX,m3
               MOV DX,m4
               INT $33
               MOV m1,AX
               MOV m2,BX
               MOV m3,CX
               MOV m4,DX
              END;

    procedure MausDa(nr:Word);
              Inline($58/$cd/$33);

    PROCEDURE MausReset;
              BEGIN
               IF Mem[MemW[0:$cc+2]:MemW[0:$cc]]<>$cf THEN
               BEGIN
                MausDa(0);
                MausDa(1);
               END
               ELSE
               BEGIN
                Write('Maus nicht installiert! MOUSE.COM aufrufen! <Enter>');
                ReadLn; Halt;
               END;
              END;

    procedure MausData;
               begin
                m1:=3;
                Maus;
               end;

    {------------------------------------------------------------------------}

    procedure karteioeffnen;
              begin
               assign(kartei,'vokabeln.dat');
               {$I-}reset(kartei);{$I+}
               if IOresult<>0 then
               begin
                gotoxy(1,25);
                write('Programmfehler: die Kartei konnte nicht ge”ffnet werden - Das Programm wurde beendet.');
                halt;
               end;
              end;

    procedure karteischliessen;
              begin
               close(kartei);
              end;

    procedure datensatzlesen(var ende:boolean);
              begin
              {$V-}
               with karteidaten do
               begin
                voc_engl:='';voc_d:='';
                clrscr;
                write('englische Vokabel: ');
                stringlesen(voc_engl,sizeof(voc_engl)-1);
                ende:=voc_engl='';
                if not ende then
                begin
                 write('deutsche Vokabel:  ');
                 stringlesen(voc_d,sizeof(voc_d)-1);
                end;
               end;
              {$V+}
              end;

    procedure datensatzspeichern;
              begin
               seek(kartei,filesize(kartei));
               write(kartei,karteidaten);
               seek(kartei,filepos(kartei)-1);
              end;

    procedure datensatzladen(welcher:shortint);
              var neuepos:integer;
              begin
               neuepos:=filepos(kartei)+welcher;
               if (0<=neuepos) and (neuepos<=filesize(kartei)-1) then seek(kartei,neuepos);
               read(kartei,karteidaten);
               seek(kartei,filepos(kartei)-1);
              end;

    procedure datensatzschreiben;
              begin
               clrscr;
               with karteidaten do
               begin
                writeln('ENGL: ',voc_engl);
                writeln('D:    ',voc_d);
               end;
              end;

    procedure karteidateneinlesen;
              var ende:boolean;
              begin
               textcolor(14);
               writexy(2,1,'e');
               textcolor(15);
               gotoxy(1,25);
               clreol;
               write('zum Beenden bitte bei der Englischvokabel ENTER drcken');
               openwindow(9,16,63,23);
               repeat
                datensatzlesen(ende);
                if not ende then datensatzspeichern;
               until ende;
               clrscr;
               window(1,1,80,25);
              end;

    procedure karteidatenausgeben;
              var taste:char;
              begin
               textcolor(14);
               writexy(15,1,'a');
               textcolor(15);
               gotoxy(1,25);
               clreol;
               write('(n)„chster   (v)origer');
               write('ESC-Ende':57);
               openwindow(16,9,63,23);
               datensatzladen(0);
               writexynr(1,10,karteinr);
               repeat
                datensatzschreiben;
                taste:=upcase(readkey);
                case taste of
                 'N':begin
                      datensatzladen(+1);
                      karteinr:=karteinr+1;
                     end;
                 'V':begin
                      datensatzladen(-1);
                      karteinr:=karteinr-1;
                     end;
                end;
               until taste=esc;
               window(1,1,80,25);
              end;

    procedure karteidatenbearbeiten;
              var taste:char;
              begin
               repeat
                clrscr;
                textcolor(15);
                writexy(1,1,'(e)ingeben   (a)usgeben');
                write('ESC-Ende':56);
                for i:=1 to 80 do writexy(i,2,'Í');
                writexy(1,3,'Vokabelverwaltung');
                write('(c) 2006 Dragorad':62);
                taste:=upcase(readkey);
                case taste of
                 'E':karteidateneinlesen;
                 'A':karteidatenausgeben;
                end;
               until taste=esc;
              end;

    {------------------------------------------------------------------------}

    begin     repeat
               window(1,1,80,25);
               clrscr;
               textcolor(15);
               mausreset;
               karteioeffnen;
               karteidatenbearbeiten;
               karteischliessen;
               programmende;
              until readkey='j';
    end.



    und hier die Unit:

    Code:
    unit      uMInOut;
    interface
    uses      crt;
    const     hardflag:boolean=true;
    var       m1,m2,m3,m4,nr:word;
              karteinr:integer;

    procedure writexy(x,y:byte;text:string);
    procedure writexynr(x,y:byte;zahl:integer);
    procedure openwindow(xo,yo,xu,yu:integer);
    procedure openwindowende;
    procedure programmende;
    procedure stringlesen(var lesstr:string;maxlen:byte);
    implementation
    procedure writexy(x,y:byte;text:string);
              begin
               gotoxy(x,y);
               write(text);
              end;

    procedure writexynr(x,y:byte;zahl:integer);
              begin
               gotoxy(x,y);
               write(zahl);
              end;

    procedure openwindow(xo,yo,xu,yu:integer);
              type zaehler=array[1..4] of byte;
              var  zahl:zaehler;
              begin
               window(xo,yo,xu,yu);
               writexy(xo-1,yo-1,'É');
               writexy(xo-1,yo+5,'È');
               writexy(xu+1,yu-5,'»');
               writexy(45,5,'¼');
               for zahl[1]:=2 to 44 do writexy(zahl[1],1,'Í');
               for zahl[2]:=2 to 44 do writexy(zahl[2],5,'Í');
               for zahl[3]:=2 to 4 do writexy(1,zahl[3],'º');
               for zahl[4]:=2 to 4 do writexy(45,zahl[4],'º');
               gotoxy(2,1);
               write('Kartei ',karteinr);
               textcolor(14);
              end;

    procedure openwindowende;
              type zaehler=array[1..4] of byte;
              var  zahl:zaehler;
                   x,y:integer;
              begin
               x:=30;y:=8;
               writexy(x,y,'É');
               writexy(x,y+4,'È');
               writexy(x+20,y,'»');
               writexy(x+20,y+4,'¼');
               for zahl[1]:=x+1 to x+19 do writexy(zahl[1],y,'Í');
               for zahl[2]:=x+1 to x+19 do writexy(zahl[2],y+4,'Í');
               for zahl[3]:=y+1 to y+3 do writexy(x,zahl[3],'º');
               for zahl[4]:=y+1 to y+3 do writexy(x+20,zahl[4],'º');
               window(x,y,x+19,y+3);
               textcolor(15);
              end;

    procedure programmende;
              begin
               openwindowende;
               writexy(2,2,' Wirklich beenden?');
               writexy(2,4,' Ja           Nein');
              end;

    procedure stringlesen(var lesstr:string;maxlen:byte);
              const ret=#13;
              var   ch:char;
                    i,x,y:byte;
              begin
               x:=wherex;
               y:=wherey;
               lesstr:='';
               repeat
                gotoxy(x,y);
                write(lesstr);
                for i:=length(lesstr)+1 to maxlen do write('_');
                gotoxy(x+length(lesstr),y);
                ch:=readkey;
                if (length(lesstr)<maxlen) and (ch<>ret) then lesstr:=lesstr+ch;
               until ch=ret;
               writeln;
              end;
    end.
    [/code]



    Re: Englischvokabelverwalter

    exbs - 23.10.2006, 22:40


    mmmh also ich kann leider nicht compilieren. :roll:

    Mir fehlt die eine Unit (uminout) da !! :?: ... mmh ich hatte schon früher das Prob das mir welche fehlten!

    kann ich mir die im net saugen ??

    greetzz exbs



    Re: Englischvokabelverwalter

    Dragorad - 24.10.2006, 21:37


    Ich hab' den ersten Post editiert, da müsstest du sehen, wo die (selbst erstellte) Unit ist.
    Die Unit einmal ausführen (Strg+F9), da kommt die Nachricht "Cannot run a Unit", die *tpu-Datei ist erstellt und muss in den TP-Ordner kopiert werden.
    Dann das Programm kompilieren und fertig.

    PS: kann man auch andere Dateien als Bilder anhängen (würde das Übermitteln von Quelltexten und kleinen EXEs erheblich erleichtern.



    Re: Englischvokabelverwalter

    AQE89 - 25.10.2006, 16:54


    kannst dir ja von irgend einem anbiter ein Webspace Miten, beziehen oder wie man das nehnen sollte.

    da kannst du dann daten rauf laden und hier hin verlinken, musst aber aufpassen, ein paar anbiter sind dagegen.

    oder du hast ein eigenes Forum, wo du es hochladen kannst und dan hierhin verlinken.



    Re: Englischvokabelverwalter

    Dragorad - 25.10.2006, 23:26


    Zitat: kannst dir ja von irgend einem anbiter ein Webspace Miten, beziehen oder wie man das nehnen sollte.

    da kannst du dann daten rauf laden und hier hin verlinken, musst aber aufpassen, ein paar anbiter sind dagegen.

    oder du hast ein eigenes Forum, wo du es hochladen kannst und dan hierhin verlinken.

    Ist mir alles leider nicht m?glich, aber per MAil w?rde es gehen - wer die EXEs m?chte schreibt 'ne Mail und ich h?nge die Dateien dort an.

    PS: Ist inzwischen doch möglich :D ! Hier ist der Download.



    Re: Englischvokabelverwalter

    Dragorad - 19.11.2006, 22:32


    Inzwischen ist die zweite Version fertig:
    Hier ist der Download.



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    STRG+UNTBR ? - gepostet von alesch am Samstag 12.08.2006
    Robot Carol - gepostet von Dragorad am Mittwoch 25.10.2006
    PROGRAMMSAMMLUNG - gepostet von DrPhil_Guth am Freitag 25.08.2006
    Turbo C - gepostet von Mei$ter A^ am Montag 24.04.2006
    brauche Hilfe für ein kleines Programm - gepostet von Boron am Samstag 24.06.2006
    2 Fragen - gepostet von d.d.d. am Samstag 24.03.2007
    Quelltext ziemlich lang!? - gepostet von Mr_A_ am Sonntag 15.04.2007



    Ähnliche Beiträge wie "Englischvokabelverwalter"