Danke. ich esse gerade...
Man ißt nicht, wenn man am PC sitzt, also, wirklich!
Da wird ja alles schmutzig!
@HW:
Eine Gui kannst du, wenn du MS/PC-DOS schon installiert
hast, leichter programmieren, als ohne!
Selbst dann ist es noch schwer genug, D und L habens ja schon
beschrieben, MULTITASKING ist das Problem. Mach erst mal eine
SingleTask umgebung, die du dann erweiterst!
TurboBasic und TurboPascal sind dafür nat. erste Wahl, denn
beide können Assemblerbefehle ausführen (TB zwar nur eingeschränkt)
und beide bringen eine leistungsfähige "Grafikengine" mit, TB eine einge-
baute, TP die berühmte "Borland Grafic Interface"-Engine, die unter Dos
läuft. Willst du ein MS/PC-DOS Programm im Fenster deiner GUI ausführ-
en, musst du die Interruptroutine dafür aufrufen, die kannst du relativ
einfach mit der Interruptlist von Ralf Brown finden. Es gab mal eine Site,
(
www.tif-masters.de) die hatten eine RIESIGE TP-FAQ und ein Beispiel-
programm zu deinem Problem, die Site gibts inzwischen nicht mehr und
Google konnte auch nicht helfen......
......Speicherstellen kopieren kannst du mit den TP-Befehlen Move und Mem, wobei Move schneller ist.
Einfach Zeiger auf Speicherstelle einrichten und kopieren:
Beispiel gefällig?!
Code: Alles auswählen
Program CopyMem;
Uses Crt;
Var a, b:String;
Pa, Pb:Pointer;
Begin
ClrScr;
Writeln('Wir werden nun einen String in einen anderen kopieren!');
Write('Bitte String eintippen: ');
Readln(a);
Writeln; Writeln;
Writeln('Der String liegt an Adresse [',Seg(a),':',Ofs(a),']');
Pa := Ptr(Seg(a),Ofs(a)); {Zeiger auf a einrichten}
Writeln;
Writeln('String wird kopiert!');
b := ''; {Zur Sicherheit, nicht unbedingt notwendig}
Pb := Ptr(seg(b),Ofs(b));
{Jetzt gehts los}
Move(Pa^,Pb^,Length(a)+1); {Kopiere a nach b mit Länge a+1, weil
1 Byte Längenangabe!}
Writeln('String in b: ',b);
End.