![]() |
Blockread konvertirungsprobleme von D5 nach D2010
Hallo wer kann mir helfen.
Ich habe ein Problem mit chinesischen Schriftzeichen bei der Umstellung auf D2010 ! Habe bisher mit D5 TXT Dateien problemlos eingelesen. (ich lese immer 1 Zeichen ein um Feldtrenner ';' und Satzende 0A0D zu erkennen.) var MFELD1 : array [0..0] of char; mtest0,mtest1,mtest2:char; MAFELD1:String; MDatei: File; Mk: File; nread:integer; . . procedure Lesen; begin MAFELD1:= ''; while not eof(mk) do begin blockread(MK,MFeld1,sizeof(MFeld1),nread); if (MFeld1=MTest1) then begin blockread(MK,MFeld1,sizeof(MFeld1),nread); // einlesen #10 break; end; if (MFeld1<>MTest0) then begin mafeld1:=mafeld1+MFeld1; end; if (MFeld1=MTest0) then break; end; end; procedure TForm444.Button1Click(Sender: TObject); begin MTEST0:= ';'; MTEST1:= CHR(13); MTEST2:= CHR(10); fname:='J:\Ponn\Auft\Data\DEG\datanorm.001'; assignfile(MK,fname); reset(MK,1); lesen(); if copy(MAFELD1,1,1)='V' then begin . . Mit der Umstellung auf D2010 ist der Vergleich von char und Array [0..0] of char nicht mehr möglich. Also habe ich die Variable MTest0,MTest1,MTest2 welche ich mit dem Array vergleiche ebenfalls als Array[0..0] definiert. Jedoch schon bei der Zuweisung MTEST0:=';' hat die Variable den Wert '䜰' ... auch alle Zeichen die mit Blockread eingelesen werden sind Chinesische Schriftzeichen. Was mache ich falsch ? |
AW: Blockread konvertirungsprobleme von D5 nach D2010
Zitat:
der hätte nie möglich sein dürfen, es muss MFELD1[0] heissen. Gruss Reinhard |
AW: Blockread konvertirungsprobleme von D5 nach D2010
MFELD1 ist ein statisches Array, das klappt schon, auch wenn die [0] nicht schaden kann,
aber seit Delphi 2009 ist ein Char 2 Bygte groß, da Char = WideChar und SizeOf(WideChar) = 2. Davor war Char = AnsiChar und demnach 1 Byte groß- Lösung: nimm AnsiChar und verwende zuküftig niewieder dynamische Typen zum Speichern (kein Char, kein Integer, kein Real usw.) |
AW: Blockread konvertirungsprobleme von D5 nach D2010
Hi himitsu,
私は、おかげでそれを理解する (Watashi wa, okage de sore o rikai suru):thumb: Kunst kommt eben von Können und nicht von Wollen, sonst hieße es Wunst! Mit AnsiChar klappt es wie in Delphi5 auch ohne [0]! あなたの知識をありがとう! (Anata no chishiki o arigatō!) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:24 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