-
Forum: Software-Projekte der Mitglieder
by himitsu,
7. Mär 2011
Er hat das selbe Problemchen wie ich gerade ... hier hab ich Delphi+Debugger, aber kein Win7 und drüben hab ich Win7, aber keinen Debugger. :stupid:
-
Forum: Software-Projekte der Mitglieder
by himitsu,
7. Mär 2011
Tschuldschung.
Kann es zur Zeit schlecht testen/debuggen,
abgesehn davon, daß ich die letzten Tage flach lag und fast keinen klaren Gedanken fassen konnte. :vernupft:
-
Forum: Software-Projekte der Mitglieder
by himitsu,
4. Mär 2011
Gut, bei Win7 war's halt naheliegend, daß es daran liegen könnte, wenn es unter XP noch geht. :stupid:
Hmmm, wie heißt denn die Fehlermeldung und kannst du zufällig die Zeile nennen, in welcher es knallt?
Eigentlich wäre es sehr ungewöhnlich, wenn es genau in dieser Zeile knallt.
myFile := TTextStream.Create(ChangeFileExt(Application.Exename, '.lng'), saRead);.
Ich glaub die Debuginfos...
-
Forum: Software-Projekte der Mitglieder
by himitsu,
4. Mär 2011
Gut, dann erstmal ganz allgemein gefragt:
Wo liegt eine EXE und sicher daß dein Programm dort über ausreichende Zugriffsrechte verfügt?
-
Forum: Software-Projekte der Mitglieder
by himitsu,
18. Okt 2010
FIndex ist nur ein interner Index, welcher eigentlich extern nix zu suchen hat.
Ich lese die Datei ja blockweise ein, die Zeilen im aktuellen Block werden über FLines indiziert.
FIndex gibt nun an, wieviel von diesem Block schon eingelesen wurde, bzw. an welcher Stelle (Index) man sich dort grade befindet und ob bei einem ReadLine nun noch eine Zeile aus diesem Puffer genommen werden kann, oder...
-
Forum: Software-Projekte der Mitglieder
by himitsu,
16. Okt 2010
Hatte aber noch nicht die Gelegenheit alles zu Testen, darum quasi nur erstmal als PreAlpha, oder so :stupid: , da es so einige Änderungen gab.
Anhang entfernt (Aktuelleres siehe Post #1)
-
Forum: Software-Projekte der Mitglieder
by himitsu,
16. Okt 2010
Sekunde, bin och blöd ... werd's gleich nochmal probieren, mit der richtigen Klasse :oops: und mich dann wieder melden.
Die Funktion ReadLine sollte aber korrekt sein und ich vermute mal einen Fehler im .Create, denn sonst würde nicht nur die 2. Zeile fehlen, sondern womöglich jede Zweite.
Also, ein Inherited ReadLine im .Create könnte nicht schaden und das Problem mit der fehlenden Zeile ......
-
Forum: Software-Projekte der Mitglieder
by himitsu,
17. Aug 2010
Hab grade kein Delphi hier, drum werd ich mir das später nochmals genauer ansehn.
Aber mit dem EoLn hast du Recht.
Wenn nichts mehr am Zeilenende oder nur noch Leer-/ Steuerzeichen am Ende enthalten sind, dann muß es True werden, also = ''
-
Forum: Software-Projekte der Mitglieder
by himitsu,
17. Aug 2010
@Freejay: If (FBufferSize < i) or not CompareMem(@FByteBuffer, @B, i) Then i := 0;
wäre richtiger.
(hab beim Umdrehen des äußeren IFs das AND vergessen mitzudrehen :wall: )
@ChrisE: ich seh nix :roll:
danke
-
Forum: Software-Projekte der Mitglieder
by himitsu,
17. Aug 2010
Joar, da hatte ich wohl ein bissl zuviel gelöscht.
1. sollte jetzt funktionieren.
(die Prüfung wurde ausversehn mit entfernt)
2. joar, das war hier eigentlich nicht vorgesehn
(in meiner größeren Version gibt es dafür eine interne Option ... hab dafür aber nun einen neuen Access-Wert eingeführt > saWriteWithoutBOM)
#$FEFF ist das "Zeichen" für Unicode ... wenn man dieses Zeichen...
-
Forum: Software-Projekte der Mitglieder
by himitsu,
21. Mai 2010
Oh, da hat sich noch ein Fehler bei der Pufferumstellung eingeschlichen
(früher Byte-Array mit 0-Index und jetzt String mit der bösen 1, aber die anderen Codestellen sehen diesbezüglich OK aus :angel2: )
Zeile 811
Procedure TTextStream.WritePart(Const S: SString);
Begin
...
Move(S, FStringBuffer + 1], Length(S) * SizeOf(Char));
und Zeile 836
Procedure TTextStream.Flush;
-
Forum: Software-Projekte der Mitglieder
by himitsu,
21. Mai 2010
Ups, also für Zeile 706+707 dann Dieses:
If Access = saRead Then Mode := fmOpenRead or fmShareDenyWrite
Else If Access = saAppend Then Mode := fmOpenReadWrite or fmShareDenyWrite
Else Mode := fmCreate or fmOpenReadWrite or fmShareDenyWrite;
Im Testcode lese ich über einen Stream ein und schreibe auch darüber. Und dort wird über CreateFile + einen speziellen...
-
Forum: Software-Projekte der Mitglieder
by himitsu,
21. Mai 2010
nicht wundern ... es gibt jetzt nur noch eine Version für Unicode (D2009/2010) und die anderen Delphis.
Nja, und ein paar vergessene Codezeilen wurden noch schnell integriert ... die Erkennung der Zeilenumbrüche (siehe in #1).
-
Forum: Software-Projekte der Mitglieder
by himitsu,
20. Mai 2010
*rrrrrrrr*
Manchmal sind die alten Pascal-Funktionen eigentlich recht praktisch.
Nur schade ist, daß man damit nur ANSI-Text-Dateien erstellen und auslesen kann
und das interne Caching ist nicht unbedingt .... nja, ich wie soll man es denn nennen? ... optimal?
Hiermit könnte man sogar eine normale TStringList effektiver füllen. Zumindestens was größere Dateien angeht, dann so ab einer...
-
Forum: Software-Projekte der Mitglieder
by himitsu,
20. Mai 2010
Ups :lol:
Dieses kannst'e ignorieren.
Ansonsten hoff' ich mal, daß die anderen Meldungen nun weg sind.
Dieses war 'ne übereifrige Ersetzungaktion ... der Code hätte eigentlich unverändert bleiben können
-
Forum: Software-Projekte der Mitglieder
by himitsu,
20. Mai 2010
Nja, es geht mehr um sowas schön Kombiniertes wie ReadLn(i, S).
WriteLn(123, i, 'ads', s) kann man ja notfalls durch WriteLn() ersetzen.
Das macht doch alles schon das nette TEncoding
und der "Parser" sollte sowas auch beachten. :angel:
So, ein Art kombiniertes Write/WriteLn gibt es, aber natülich nicht das Read/ReadLn.
Read ließt nur einen Wert, der aktuellen Zeile und EoLn gibt an,...
-
Forum: Software-Projekte der Mitglieder
by himitsu,
20. Mai 2010
@DeddyH
Noar, also ab Delphi 2009 ... aber man könnte sich notfalls auch einen Dummy für TEncoding erstellen und dann dürfte es auch in älteren Delphis laufen.
TEncoding hatte ich eben genommen, da es "aktuell" auch in der VCL verwendet wird und somit leichter benutzbar ist
, außerdem befindet sich somit kein Code für eine En-/Decodierung im eigenen Projekt und es kann alles extern...
-
Forum: Software-Projekte der Mitglieder
by himitsu,
19. Mai 2010
So, den nun hab ich erstmal den Schreib-/Lesekern meiner neuen StringListe seppariert und er läuft endlich.
Manchmal muß man eben mit mehrfachem Code leben ... hartkodierte Konstanten sind eben schneller, als Variablen und eine dynamische Verarbeitung.
Diese Klasse ließt eine beliebig große Textdatei sequentiell ein, wobei sogar unterschiedliche Kodierungen (TEncoding) unterstützt werden und...