![]() |
readbuffer problem ('verzweifle')
so, also ich wollt grad mal fragen, ob das so richtig iss , denn es geht nämlich irgendwie nicht ...
Delphi-Quellcode:
[edit=Luckie]Sprache korrigiert. Mfg, Luckie[/edit]
procedure BIB_FileReplaceString(FileName, searchstring, replacestring: string);
var fs: TFileStream; S: string; begin // Erstellen der Variablen für die Datei fs := TFileStream.Create(FileName, fmOpenread or fmShareDenyNone); try SetLength(S, fs.Size); fs.ReadBuffer(S[1], fs.Size); finally fs.Free; end; // Ersetzen des Textes S := StringReplace(S, SearchString, replaceString, [rfIgnoreCase]); fs := TFileStream.Create(FileName, fmCreate); try fs.WriteBuffer(S[1], Length(S)); finally fs.Free; end; end; |
Re: readbuffer problem ('verzweifle')
Einfach öfter mal aufrufen - irgendwann wird es schon "gehen".
Sieht garnicht danach aus - warum hast du unter .NET gepostet? Wenn du die Datei für konkurrierenden Zugriff freigibst, dann vielleicht besser mit fmShareDenyWrite. Das SetLength() würde ich aus dem Ressourcen-Schutzblock heraus lassen. Ressourcenschonend ist der Code auch nicht gerade, aber laufen sollte er - vom Augenschein her. Wie hast du denn festgestellt, dass er nicht geht? Grüße vom marabu |
Re: readbuffer problem ('verzweifle')
hmm ..
ich habe mich geirrt mit net .. lol ich habe mich verklickt kann man so sagen, naja also das mit dem nochmal aufrufen klappt nicht :[ aber ich werds probieren bisses klappt, für jede weitere hilfe bin ich dankbar |
Re: readbuffer problem ('verzweifle')
Ich sehe jetzt auf den ersten Blick auch kein Problem im Quelltext.
(vielleicht mal nur Read und Write benutzen anstatt von Read/WriteBuffer). Vielleicht kannst du das aber komplett über den Haufen werfen und stattdessen einen TStringStream benutzen (Unit Classes). Damit kannst du direkt im "Text-Modus" auf eine Datei zugreifen. |
Re: readbuffer problem ('verzweifle')
Hallo poltergeistx,
möchtest Du vielleicht alle Vorkommen des Suchtextes ersetzen? Falls ja, dann mußt Du das beim Aufruf der Funktion StringReplace angeben:
Delphi-Quellcode:
Gruß Hawkeye
S := StringReplace(S, SearchString, replaceString, [rfIgnoreCase, rfReplaceAll]);
|
Re: readbuffer problem ('verzweifle')
kk
ich werds denn mal testen jetzt :] ich habs noch immer net hinbekommen ^^ |
Re: readbuffer problem ('verzweifle')
Du denkst nur, dass das Programm nicht funktioniert!
In Wirklichkeit funktioniert es aber; du kannst es nur nicht erkennen. (der berüchtigte "Tomaten auf den Augen Effekt" :zwinker: ) Du musst dir folgende Dinge anzeigen lassen: Der String vorher, der String nachher, der Inhalt von "Searchstring" und "replacestring". Dann lässt sich erkennen, WAS da nicht funktionieren soll. |
Re: readbuffer problem ('verzweifle')
.-.
|
Re: readbuffer problem ('verzweifle')
Zitat:
danke danke danke ^^ ich habe den code irgendwie so gemacht, dass das programm nicht mehr 'abstürtzt'(respektiv funktioniert ^^) doch jetzt geht das ganze wieder tiptop thx :] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz