Forum: Sonstige Fragen zu Delphi
Delphi
by shmia,
5. Jun 2009
In Pseudocode sieht das ungefähr so aus:
if (@IrgendeinerMenge + (x shr 3 ))^ and (1 shl (x and $7)) <> 0 then
Man testet praktisch, ob das x.te Bit in der Menge gesetzt ist.
Die Operationen Addition, Links/Rechtsschieben, AND-Verknüpfung sowie Vergleich mit 0 sind alle recht flott.
Der Pointerzugriff macht schon Einiges aus; die Rückwärtsschleife dagegen so gut wie nichts,
weil der...
Forum: Sonstige Fragen zu Delphi
Delphi
by shmia,
5. Jun 2009
Die "Array-Lösung" ist vorallem dann angebracht, wenn man beliebige Umschlüsselungen von einzelnen Zeichen vornehmen möchte.
Falls man nur ein einziges Ersetzungzeichen hat (im deinem Beispiel das '|') dann wird wohl folgende Funktion
die maximale Leistung bringen:
function StrReplaceCharsInplace(var S: AnsiString; const Chars: TSysCharSet; Replace: AnsiChar): AnsiString;
var
I: Integer;...
Forum: Sonstige Fragen zu Delphi
Delphi
by shmia,
4. Jun 2009
Nun, dann sind wir doch wieder bei meinen Funktionen von Betrag #6.
Es ist doch programmiertechnisch besser die Aufgabe wie folgt zu lösen:
var
daten : string;
begin
daten := FileToString(dateiname);
StrReplaceCharsInplace(daten, , '|'); // Steuerzeichen durch Pipezeichen ersetzen
StringToFile(daten, dateiname);
end;
Forum: Sonstige Fragen zu Delphi
Delphi
by shmia,
3. Jun 2009
Mit den beiden folgende Funktionen kannst du die komplette Datei als String einlesen, verändern und wieder speichern (am Besten unter einem anderen Dateinamen).
Wenn deine Datei ~ 10 Megabytes überschreitet musst du dir Gedanken machen, nur Teile der Datei einzulesen und zu manipulieren.
So aber ist es am Einfachsten: alles in den Speicher lesen, verändern, zurückschreiben.
// kopiert aus...