Бөлімнің код коды кодты орындау жолына сәйкес келмейді, тоқтау нүктесінің шабуылы

Мен Delphi 6 Pro көмегімен DSPACK код кітапханасымен жасалған DirectShow сүзгісін түзетемін. Мен тоқтаған тоқтау нүктесі BaseClass.pas деп аталатын нақты бір бөлікте соққы берсе және мен бақылауды бастасам, орындау нүктесі бастапқы кодтағы елсіз жерлерге секіреді. Бұл, әдетте, бақыланатын бастапқы кодтың Delphi қосымшасы пайдаланатын бумалардың біріне жиналған бастапқы кодқа сәйкес келмейтінін көрсетеді. Қалай болғанда да, бұл BaseClass бірлігі ғана, себебі мен DSPACK код кітапханасына тиесілі басқа бірліктерді байқадым және олар бұл мәселені көрсетпейді. Мен run-time пакеттерін пайдаланбаймын.

Мен дискімді сканерлеп, BaseClass.dc-тің тек бір көшірмесін тауып, бағдарламаны соңғы рет жасағаныма тең болды. Мен осы бірліктің немесе DSPACK-ға тиесілі басқа біреудің көзін өзгертпедім. Менің сүзгім негізгі бағдарламаның бір бөлігі болғандықтан, бұл BaseClass.pas қосарлы пайдалану жағдайына ұшырайтынын көрсетеді, себебі ол DSPACK құрамдас бумасын (dpk) құрастыру үшін пайдаланылады және менің басты бағдарламам арқылы тікелей TBCSource объектісі арқылы сілтеме жасалады менің сүзгіім түседі. Есіңізде болсын, мен PAS файлын тікелей менің жобаға қосуды жөн көрдім, бірақ ештеңені түзетпеді.

Мен сондай-ақ қайта оралып, DSPACK пакет файлдарының әрқайсысын қайта аштым және толық қайта құрдым. Бұлардың ешқайсысы көмектесті. BaseClass модулінің құрастырылған кескінімен синхрондалған көзді алуға тырысуға болатын тағы бір нәрсе бар ма? Немесе әртүрлі мәселе және егер солай болса, ол не және оны қалай түзете аламын?

2

4 жауаптар

Менде осындай проблема болған және осындай қызметті жасады. Бекітілді. Негізінде бұл жай:

procedure adjustCRLF(filename : String);  
var  
    strList : TStringList;  
begin  
    strList := TStringList.Create;  
try  
    strList.LoadFromFile(filename);  
    strList.Text := AdjustLineBreaks(strList.Text);  
    strList.SaveToFile(filename);  
finally  
    strList.Free;  
end;  
end;
4
қосылды
Файлдарды сақтау кезінде редактор автоматты түрде жолдың соңын тазалайды!
қосылды автор Shannon, көзі

Кейде бұл коды веб-беттерден немесе басқа көздерден көшірілгенде/қойылғанда орын алады және сызықтар CR/LF жұптарымен ( # 13 # 10 ) немесе < > 0x0D0A , Windows үшін стандартты), бірақ LF ( # 10 немесе 0x0A ), әдетте, * nix жүйелерінде аяқталатын жол) немесе CR (< > # 13 немесе 0x0D , Mac OSX/iOS үшін тән). Қате сызық терминаторлары қате туралы хабарлаушыды шатастырады - бұл соңғы бірнеше Delphi нұсқасының мәселесі болды.

Сіз кейде бастапқы файлды Блокнот сияқты мәтіндік редакторды пайдаланып ашып, шағын мәнсіз өзгертулер жасай отырып (мысалы, бос жолды кірістіріп, содан кейін жойыңыз) түзетіп, файлды сақтай аласыз.

3
қосылды
Бұл туралы еске салғаныңыз үшін рахмет. Мен сіздің ұсынысыңызды сынап көрдім, өкінішке орай ешқандай өзгеріс жоқ.
қосылды автор Robert Oschler, көзі
Мен Delphi файлдарын кез келген қалаусыз таңбаларды тазарту үшін және сызықтық таңбалардың барлық соңы шын CRLF жұбы болғандығын тексеру үшін бұрыннан бері утилиттерді жазғанымды есіме түсірдім. Мен оны тауып, оны BaseClass.pas-ке жүгіріп, қате жоғалып кетті. Сондықтан, кейбір жағдайларда, ноутбукті сақтау/қайта жүктеу жеткіліксіз, бірақ ол кәдімгі сипатта болды. Өкінішке орай бірнеше сағат жоғалтты, бірақ ол бекітілгеніне қуанды.
қосылды автор Robert Oschler, көзі
Шын мәнінде көп көмектесті. :)
қосылды автор Robert Oschler, көзі
:) Сондықтан мен «кейде» ғана емес, «түзете аласыз» деп айттым. Мен аз болса да көмектесе алатыныма қуаныштымын.
қосылды автор Ken White, көзі

Бұл тағы бір себеп болуы мүмкін: егер IDE қате басқа бір бастапқы файлды бірдей атымен (бірақ бұрынғы нұсқасы сияқты әртүрлі) ашады, онда барлық күйін келтіру нүктелері дұрыс болмайды және дебаггер сізді қате файл. Мен Delphi 7-ды бір рет көрдім.

1
қосылды

Оны қалпына келтіргенде, «Деректерді деблеу туралы ақпарат» деген жобаңыздың компилятор параметрлерін қосқаныңызға көз жеткізіңіз. Іс жүзінде, Отладкадағы опциялардың көбі жобаның компилятор параметрлерінде орнатылуы керек.

Сондай-ақ, егер сіз әлі жоқ, Delphi қайта.

1
қосылды
Жақсы идея, бірақ мен қайтадан тексердім, ақпараттың отладкасы шын мәнінде.
қосылды автор Robert Oschler, көзі