Odczyt z pliku - dziwne znaki

0

Mam w pliku tekstowym jakiś tekst np: SYSTEM

I teraz odczytuję ten plik:

AssignFile(plik, 'plik.txt');
Reset(plik);
ReadLn(plik, temp);

I teraz w zmiennej temp mam takie coś: šS#0Y#0S#0T#0E#0M#0#0

Skąd te śmieci ?

P.S. plik to zmienna typu TextFile, a temp : string
P.S2 Używam Delphi XE

0

Wygląda to na Unicode.

0

prorokiem nie jestem może ten plik daj co?

0
Pele2 napisał(a)

I teraz w zmiennej temp mam takie coś: šS#0Y#0S#0T#0E#0M#0#0

Zapisz plik kodując go za pomocą ANSI i przeprowadź próbę; Tak jak wspomniał @pelsta plik może mieć kodowanie Unicode;

proqix napisał(a)

prorokiem nie jestem może ten plik daj co?

Zgaduj zgadula :P

Przede wszystkim napisz algorytm wczytywania pliku jakoś bardziej sensownie i profesjonalnie, zabezpiecz go jakoś przed wczytywaniem śmieci;

procedure LoadFile(sFileName: String);
var
  fInput: TextFile;
  sTemp: String;
begin
  AssignFile(fInput, sFileName);
  Reset(fInput);

  while not EoF(fInput) do
    begin
      ReadLn(fInput, sTemp);
      WriteLn(sTemp);
    end;

  CloseFile(fInput);
end;

Podaj cały kod wczytujący zawartość pliku, a nie tylko trzy linijki; Dodaj do załącznika ten plik, zrób coś;

0

Sprawdziłem ten plik w edytorze hex. I rzeczywiście pomiędzy każdym znakiem był znak o kodzie 0x00.
Zapisanie go w notatniku nie pomogło, ale wkleiłem go do Worda i zapisałem w formacie txt. Teraz odczytuje się bez problemów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1