Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Umlaute werden aus DBase-DB falsch ausgelesen (https://www.delphipraxis.net/16466-umlaute-werden-aus-dbase-db-falsch-ausgelesen.html)

daywalker-dj-k 17. Feb 2004 15:06


Umlaute werden aus DBase-DB falsch ausgelesen
 
hallo,
ich stelle über ttable und tdatasource verbindungen zu dbase-dbs her und egal ob ich die felder auf einem dbedit oder einen dbgrid ausgebe, die umlaute werde immer ungefähr so dargestellt ||

woran kann das liegen? wenn ich die db mit excel öffne, wird alles richtig angezeigt.

danke
gruß
tkliewe

neolithos 17. Feb 2004 15:09

Re: Umlaute werden aus DBase-DB falsch ausgelesen
 
Such mal nach einer Eigenschaft in der du die Zeichetabelle Festlegen kannst.

Beim Connection-Object oder der Enviroment.

r_kerber 17. Feb 2004 17:22

Re: Umlaute werden aus DBase-DB falsch ausgelesen
 
Wenn Du aufgepasst hättest, dann hättest Du diesen Thread bemerken müssen: Umlaute werden nicht angezeigt! :lol:

daywalker-dj-k 24. Feb 2004 18:13

Re: Umlaute werden aus DBase-DB falsch ausgelesen
 
hallo,
also so richtig hilft mir das nicht weiter. ich hab jetzt schon fast alle einstellungen in der bde-verwaltung durch und immer noch keine umlaute.

kennt jemand nicht die genaue einstellung. also ich hab bei dbases unter langdriver halt die sachen mit "deu" ausprobiert.

danke
gruß
tkliewe

KarstenW 25. Feb 2004 07:48

Re: Umlaute werden aus DBase-DB falsch ausgelesen
 
Sind das bestehend DBase-Tabellen ?
Wenn ja, welche Version, welche Indexdateien?
Noch unter DOS erzeugt ?

Ist ja möglich daß dein Problem eine nicht bestehende Ascii - Ansi - Konvertierung ist.

Karsten

daywalker-dj-k 25. Feb 2004 09:20

Re: Umlaute werden aus DBase-DB falsch ausgelesen
 
hallo,
also es handelt sich um bereits bestehende dbase-tabellen. wann und wie die erzeugt wurden kann ich leider nicht sagen, weil ich es nicht selbst gemacht habe. index-dateien habe ich keine dabei. also bei mir liegen nur die dbf-dateien.

daran dürfte es ja auch nicht liegen, da excel sie ja richtig ausliest oder sehe ich das falsch?

danke schonmal
mfg
tkliewe

eddy 25. Feb 2004 16:22

Re: Umlaute werden aus DBase-DB falsch ausgelesen
 
Hallo

ich kenne das Problem vom Übertragen der Datenbanken von dBase nach Paradox.

Beim Kopieren Zeichenketten testen und wandeln mit:
Code:
{ASCII zu ANSI}
function KorrUml1(sa:string):string;
var
  s : string;
  j : integer;
  b : byte;
begin
  s:='';
  for j:=1 to length(sa) do begin
    b := ord(sa[j]);
    case b of
     {ASCII          ANSI    }
      $82: s:=s + chr($E9); //é;
    //$??: s:=s + chr($E8); //è
      $84: s:=s + chr($E4); {ä}
      $94: s:=s + chr($F6); {ö}
      $81: s:=s + chr($FC); {ü}
      $E1: s:=s + chr($DF); {ß}
      $8E: s:=s + chr($C4); {Ä}
      $99: s:=s + chr($D6); {Ö}
      $9A: s:=s + chr($DC); {Ü   220 = Alt-154}
      $F8: s:=s + chr($B0); {°   186 = Alt-248}
      $9B: s:=s + chr($F8); {ø   248 = Alt-155}
      $AB: s:=s + chr($BD); {½   189 = Alt-171}
      $AC: s:=s + chr($BC); {¼   188 = Alt-172}
      $5F: s:=s + chr($80); {€   128 = Alt-95 hat nicht fkt.}
    else
      s := s + sa[j];
    end;
  end;
  Result := s;
end;
Anwendung:
Code:
  ....
  Tab1.First;
  while not Tab1.Eof do begin
    for i := 0 to Tab1.FieldCount - 1 do begin
      if Tab1.FieldDefs.Items[i].DataType = ftString then begin
        fld := Tab1.FieldDefs.Items[i].Name;
        s := Tab1.FieldByName(fld).AsString;
        s := KorrUml1(s);
        Tab1.Edit;
        Tab1.FieldByName(fld).AsString := s;
      end;
    end;
    Tab1.Next;
  end;
  Tab1.First;
  ....
hat das Problem gelöst.

mfg
eddy


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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 by Thomas Breitkreuz