bardzo długi string

0

hej,
programuje w Pascalu i mam mały problem.
czy jest jakaś prosta mozliwosc stworzenia lancucha znakow dluzszego niz 255 znakow?
chce bardzo dlugi string zapisac do pliku tekstowego.

napisalem sobie funkcje zlaczajaca string za pomocą "+", kompiluje się, ale mimo wszystko wyswietla mi nadal tylko 255 znakow.
macie jakis pomysl?

0
program ok;

{$MODE DELPHI}

var
  S : string;
  I : integer;
begin
  S := '';
  for I := 1 to 666 do
    S := S + 'A';
  S := S + '!';
  Write(S);
  Readln;
end.
0
marcin_01 napisał(a)

chce bardzo dlugi string zapisac do pliku tekstowego.

Jeżeli zależy Ci, aby długi łańcuch był tylko w pliku tekstowym, to możesz zapisywać do pliku krótkie łańcuchy (do 255 znaków) za pomocą instrukcji Write zamiast Writeln. Cały tekst w pliku znajdzie się w jednej linijce.

0

Może zamiast typu string dasz radę jakoś wykorzystać typ array of Char?

0

czy jest jakaś prosta mozliwosc stworzenia lancucha znakow dluzszego niz 255 znakow?

Free Pascal? użyj typu ansistring, albo daj {$H+} co powoduje że jest "type string=ansistring;". Długość stringa praktycznie nieograniczona. Działa „po prostu”.

Turbo Pascal? tablica znaków np. array[0..60000] of char i wskaźnik na nią (typ pchar). Trochę z tym kombinowania, ale można. String ograniczony do około 64 kilobajtów.

Jemu chyba chodziło o Turbo Pascala?, w którym nie ma szans na "długie" stringi
Nieprawda.

0

Najprościej użyć typu PCHAR

0

ok dzieki :)
a teraz nieco inny problem.
co jesli chcialbym wczytac bardzo dlugi string(wiecej niz 255 znakow) z pliku?

0

Proponuję poczytać helpa do Turbo Pascala na tematy: zero based character array, null terminated strings, pchar, i okoliczne. Raczej mało kto pamięta dokładne nazwy funkcji które były w TP7, zwłaszcza że to mało znany temat.
Sprawa sprowadza się do tzw. c-stringów, czyli stringów takich, jakie są w języku C. Turbo Pascal je jak najbardziej obsługuje, np. takie coś powinno działać:

var napis:array[0..1023] of char;
begin
  readln(napis);
  writeln(napis);
end.

(ale niekoniecznie pozwoli na wczytanie więcej niż 255 znaków za jednym razem)

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