Temat pewnie niewiele tłumaczy, więc rozwinę tutaj co mam na myśli :)
Stworzyłem listę, gdzie rekord składa się m.in. ze zmiennej łańcuchowej (string). Program początkowo odczytuje kolejne linie tekstu do listy, kiedy napotka koniec pliku przestaje. Z tym nie mam żadnego problemu. Problem pojawia się za to w momencie, kiedy chcę zmodyfikować zmienną łańcuchową w pewnym określonym miejscu. Zamierzałem zrobić to w taki sposób: korzystam z dwóch wskaźników, pierwszy wskazuje na początek listy. Drugiemu przypisuję wartość pierwszego, a następnie wyszukuję odpowiedni rekord w liście. Zmieniam wartość stringa... i tu pojawia się problem.
Program to edytor tekstu, gdzie kursorem można sterować strzałkami. Rzecz w tym, że przy dopisywaniu nowego znaku litery są wypisywane, natomiast kiedy już dochodzi do ruchu za pomocą strzałek wyświetlana jest dawna zawartość. Mówiąc po polsku: program zachowuje się, jak gdyby istniały dwie różne listy i zależnie od tego czy piszę nowe znaki, czy poruszam się za pomocą strzałek program wypisuje jedną z nich.
Kod wrzucam tutaj: http://pastie.org/3197927 i tak - wiem że jest ohydny, nieskładny etc. ale w tym momencie zależy mi tylko na tym żeby to działało jak trzeba. Jeśli jest możliwość, wolałbym zmodyfikować program tak, żeby lista została w takim stanie w jakim jest (teoretycznie mógłbym zrobić listę w liście z pojedynczymi znakami zamiast stringa, ale to wiązałoby się z kompletną przebudową programu i zwyczajnie mogę się nie wyrobić w terminie). Tak więc, jeśli ktoś wytłumaczy jak zmodyfikować rekord w liście - będę bardzo wdzięczny. [Wszystkie tutoriale jakie widziałem pokazywały tylko jak wstawić element do tablicy.]
BTW. Program domyślnie próbuje odczytać plik "D:\text.txt", gdzie żadna z linii nie posiada więcej niż 255 znaków (ograniczenie stringa).