Usuwanie komentarzy

0

Jaką mogę usunąć z pliku pas wszystkie komentarze. np. // i { }

Prosiłbym o gotowe źródełko :]

0
while not eof(plik) do
begin
   readln(plik, zmiennastring);
   delete(zmiennastring, pos('//', zmiennastring), length(zmiennastring));
end;
0

Plik już mam wczytany do komponentu TListBox (muszę użyć tego komponentu) i nie wiem jak dale usunąć komentarze.

0
var i:integer;

for i:= 0 to listbox1.items.count - 1 do
   delete(listbox1.items[i], pos('//', listbox1.items[i]), length(listbox1.items[i]));

0

Dzięki wielki <piwo>

Jeszcze nie wiem jak usunąć komentarz { }
oraz niepotrzebne entery w listboxie :(

0

Ciekawe co sie stanie jak bedzie:

Napis := ' // to jest napis'; //a to koment.

By moj post nie byl jalowy to napisze, ze takich problemow jest wiecej, np. dyrektywy kompilatora, ktore nie sa komentarzem a znajduja sie pomiedzy '{' i '}' do tego dochodza komentarze pomiedzy '(' i ')'. Jesli chcesz zrodlo programu, ktory usuwa komentarze z plikow zrodlowych Pascala z uwzglednieniem takich problemow to daj znac to Ci wysle. Jest tylo taki problem, ze nie sa uwzglednione komentarz typu '// bla bla' bo nie bylo tego w TP i jest to program w C, lecz jest bogato komentowany wiec problemu z przetlumaczeniem byc nie powinno.

0

Moment... A po co korzystasz z ListBox'a do tego? Przecież to cholernie <ort>nie wygodne</ort>... Żeby to było memo z tekstem albo coś, to rozumiem, ale listbox?

0

Moment... A po co korzystasz z ListBox'a do tego? Przecież to cholernie nie wygodne... Żeby to było memo z tekstem albo coś, to rozumiem, ale listbox?

Powiedzmy, że robię progs, który ma być strasznie niewygodny i bazuje na TListBox i TStrings. ( nie mogę po prostu dodać dodatkowych komponentów ;P )

0

Faktycznie usuwa wszystko :( np. Caption := 'to jest >> // komentarz';
Może ktoś wie jak się przed tym uchronić ??

PS. SynEdit ładnie koloruje składnie można by usunąć komentarze, gdyż są jednego koloru, ale nie mogę użyc innych komponentów niż standardowych ;(

0

musisz napisać parser składni skoro chcesz być na 100 pewien, że to komentarz, a nie coś innego. Wybór należy do Ciebie :)

0

Leć pętlą po tekście i licz znaczki ' . Jeżeli ilość będzie nieparzysta, znaczy, że jesteś wewnątrz strona, jeżeli parzysta to jesteś poza nim. W przypadku napotkania '//' kasujesz znaki aż do #13#10. W przypadku napotkania '{' kasujesz do napotkania '}'. Proste, nie?

//DOPISANE
Gotowe źródełko to napisz sobie sam.

0

proste w teorii ale w praktyce juz nie:P to moze podasz gotowy kod na usuwanie komnarzy typu:
//
/*koment */
przy uwzglenianiu zeby nie usuwal komenarzy gdy sa:
" /nie koment /"
" /
nie koment /" tezn ie koment
/"
' /nie koment /'
' /
nie koment /" tezn ie koment
/'

0
berl napisał(a)

//DOPISANE
Gotowe źródełko to napisz sobie sam.

I dopisane przeze mnie: nie odświeżaj starych kotletów, bo możesz się zatruć.

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