@janbit: przecież ten kod nie ma żadnego sensu - brakuje w nim połowy danych...
Kopiuj
konwersja : array[AnsiChar] of AnsiChar
Gdzie jest definicja macierzy 255 znaków?
Kopiuj
len := Length(Edit1.tekst);
Gdzie jest deklaracja zmiennej len?
Kopiuj
SetLength(tekst_maz, len)
Gdzie jest deklaracja zmiennej tekst_maz?
Gdzie jest deklaracja zmiennej i?
Kod konwertujący kodowanie natywne na mazovię pasowałoby opakować w jakąś funkcję:
Kopiuj
function NativeToMazovia(const AValue: AnsiString): AnsiString;
const
MAZOVIA_CHARS: array [AnsiChar] of AnsiChar = ({tu lista znaków odpowiednich dla mazovii});
var
LIndex: Integer;
begin
SetLength(Result, Length(AValue));
for LIndex := 1 to Length(AValue) do
Result[LIndex] := MAZOVIA_CHARS[AValue[LIndex]];
end;
Jeśli potrzebujesz konwertować tylko relatywnie krótkie łańcuchy to możesz skorzystać z pętli for in:
Kopiuj
function NativeToMazovia(const AValue: AnsiString): AnsiString;
const
MAZOVIA_CHARS: array [AnsiChar] of AnsiChar = ({tu zapis znaków odpowiednich dla mazovii});
var
LChar: AnsiChar;
begin
for LChar in AValue do
Result := Result + MAZOVIA_CHARS[LChar];
end;
Nie wiem czy Delphi które posiadasz, obsługuje tę pętlę - sprawdź sobie; No i jeśli łańcuchy znaków natywnie kodowane są w ANSI to możesz po prostu użyć typów String i Char.