bei turbo pascal 7 gibt es auch tp7 für windows. ist aber für win 3.11, aber vieleicht ist zumindest der zugriff auf die zwischenablage rückwärtskompatibel.
Diese Aussage ist falsch, weil:
bei BORLAND PASCAL 7.0 (= Turbo Pascal 7.0 für PC-DOS + (!!!!!!!!!!!!)
Turbo Pascal für WINDOWS 3.xx) besteht die Möglichkeit, in einer
DOS-IDE Windows-Programme zu schreiben, und dort natürlich die
Zwischenablage zu benutzen!
In DOS-Programmen geht es NICHT, es sei denn, man benutzt die CMD
//DOSBOX ab WIN95, mit der kann man Markiertes und Kopiertes in ein
DOS-Programm einfügen, ansonsten geht sowas NICHT!
/OK, das Deutsch da oben ist nicht perfekt!!!
2. Strings in PureBasic können ja max. ca. 64.000 Zeichen lang sein. Bei TurboPascal aber nur 255 Zeichen lang. Wie schaffe ich es in TurboPascal mit langen (ca. 11.000 Zeichen) Zeichenketten zu arbeiten (in dieser Zeichenkette sollten kurze Zeichenabfolgen gesucht werden)? Macht da ein Array Sinn (eindimensionales Array mit 11.000 Elementen? Hört sich für mich als Laien irgendwie schon bescheuert an, ich weiß ja nicht Freak )
Special Service for YOU:
Ein Programm, das eine Textdatei in den Speicher liest und nach einem
eingegebenen String sucht:
Code: Alles auswählen
{$X+} {ERWEITERTER SYNTAX!!!}
Program PCHAR_DEMO2_35;
Uses Crt, Strings;
Var P, such_p:PChar; fn, such:String;
i, k, l:LongInt;
f:File;
Const MAXZEICHEN = 23500;
Begin
ClrScr;
Writeln('Hallo du! Ja, DU vor dem Bildschirm!');
Writeln('Gib mal den KOMPLETTEN Pfad zu einer TEXTDATEI ein!');
Readln(fn);
{$I-}
Assign(f,fn);
Reset(f,1);
{$I+}
If (IORESULT <> 0) Then
Begin
Writeln('HEH, die Datei gibts ja garnicht! Jetzt musst du NEUSTARTEN!');
Readln;
Halt(1);
End;
Writeln('Ok, und dann ein Wort/Satz..., dass gesucht werden soll!');
Readln(such);
Writeln('Auch OK! Und los gehts...'); Writeln; Writeln;
i := FileSize(f);
If (i > MAXZEICHEN) Then
Begin
Writeln('Datei zu gross! Jetzt musst du NEUSTARTEN!');
Readln;
Halt(2);
End;
GetMem(P,i);
such_p := StrNew(' ');
StrPCopy(such_p,such);
BlockRead(f,P^,i);
Close(f);
If (StrPos(P,such_p) = NIL) Then
Writeln('Zeichenkette ',such,' kommt in ',fn,' NICHT vor!!!')
Else
Writeln(such,' kommt in ',fn,' an Adresse ',StrPos(P,such_p)-P,' vor!');
Readln;
FreeMem(P,i);
StrDispose(such_p);
End.