[{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-17 мин."},"isBanned":false,"roleString":"Мастер-Эксперт","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"Facta loquuntur.","signatureHTML":"Facta loquuntur.","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.979,"absoluteRating":109927,"dynamicRating":1679.678,"dynamicRatingStars":10,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-18T05:17:58.9200129+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":11,"counters":{"daysAtPortal":6544,"questions":12,"questionsPosts":18345,"questionsAnswers":6663,"questionsPostsEvaluations":2831,"forumPosts":5697},"isRfproUserClass":true,"id":17387,"name":"Гордиенко Андрей Владимирович","email":"","role":10,"registDate":"1000-01-01T00:00:00","lastDate":"2024-04-16T11:59:46","photo":"users/17387/f4979bc95a484b9f43f75cfe66538acd.jpg","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"users/17387/200_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview120":"users/17387/120_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview100":"users/17387/100_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview80":"users/17387/80_f4979bc95a484b9f43f75cfe66538acd.jpg","photoPreview40":"users/17387/40_f4979bc95a484b9f43f75cfe66538acd.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-17 мин."},"isBanned":false,"roleString":"Мастер-Эксперт","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"Я пенсионер. Образование высш, радио-инж. Работал инж-электроником, ведущим средств телевидения, связи, слесарем и инженером КИП, грузчиком, программистом. На моём счету десятки рац-предложений, в тч с большим экономич эффектом.\nЯ люблю компьютеры, ремонтирую их друзьям и соседям. Пишу полезные программки в vbs-файлах, автоматизирующие настройку Win-систем, приложений и работу с ними.","aboutHTML":"Я пенсионер. Образование высш, радио-инж. Работал инж-электроником, ведущим средств телевидения, связи, слесарем и инженером КИП, грузчиком, программистом. На моём счету десятки рац-предложений, в тч с большим экономич эффектом.\u003Cbr\u003EЯ люблю компьютеры, ремонтирую их друзьям и соседям. Пишу полезные программки в vbs-файлах, автоматизирующие настройку Win-систем, приложений и работу с ними.","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.935,"absoluteRating":25753,"dynamicRating":461.777,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-18T05:17:58.9202222+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":11,"counters":{"daysAtPortal":5577,"questions":25,"questionsPosts":7459,"questionsAnswers":1225,"questionsPostsEvaluations":788,"forumPosts":399},"isRfproUserClass":true,"id":259041,"name":"Алексеев Владимир Николаевич","email":"","role":10,"registDate":"1000-01-01T00:00:00","lastDate":"2024-01-30T15:24:45","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-17 мин."},"isBanned":false,"roleString":"Старший Модератор","roleIcon":"fa-user-tie","socialMedia":[],"aboutText":"634034, г.Томск, ул.Красноармейская 122, кв.173","aboutHTML":"634034, г.Томск, ул.Красноармейская 122, кв.173","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.985,"absoluteRating":21746,"dynamicRating":413.308,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-18T05:17:58.9203043+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":13,"counters":{"daysAtPortal":5261,"questions":1,"questionsPosts":1973,"questionsAnswers":1283,"questionsPostsEvaluations":588,"forumPosts":91},"isRfproUserClass":true,"id":312929,"name":"Коцюрбенко Алексей Владимирович","email":"","role":12,"registDate":"1000-01-01T00:00:00","lastDate":"2023-11-05T17:20:40","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-17 мин."},"isBanned":false,"roleString":"Советник","roleIcon":"fa-user-ninja","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":5,"absoluteRating":9460,"dynamicRating":388.578,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-18T05:17:58.9203687+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":10,"counters":{"daysAtPortal":2434,"questions":0,"questionsPosts":472,"questionsAnswers":398,"questionsPostsEvaluations":298,"forumPosts":1},"isRfproUserClass":true,"id":401284,"name":"Михаил Александров","email":"","role":9,"registDate":"1000-01-01T00:00:00","lastDate":"2024-03-27T19:23:59","photo":"users/401284/48171011af39b6bb3a74df8c0fcf97d0.jpg","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"users/401284/200_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview120":"users/401284/120_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview100":"users/401284/100_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview80":"users/401284/80_48171011af39b6bb3a74df8c0fcf97d0.jpg","photoPreview40":"users/401284/40_48171011af39b6bb3a74df8c0fcf97d0.jpg","isPhotoExists":true,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":true},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-17 мин."},"isBanned":false,"roleString":"Посетитель","roleIcon":"fa-user","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.987,"absoluteRating":6052,"dynamicRating":223.076,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-18T05:17:58.9204378+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":2,"counters":{"daysAtPortal":2713,"questions":0,"questionsPosts":527,"questionsAnswers":250,"questionsPostsEvaluations":155,"forumPosts":0},"isRfproUserClass":true,"id":400669,"name":"epimkin","email":"","role":1,"registDate":"1000-01-01T00:00:00","lastDate":"2024-02-19T23:46:05","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false},{"isEmailConfirmed":true,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":3,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"нет адреса","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-17 мин."},"isBanned":false,"roleString":"Посетитель","roleIcon":"fa-user","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"[i]С уважением[/i]\n[i]shvetski[/i]","signatureHTML":"\u003Ci\u003EС уважением\u003C/i\u003E\u003Cbr\u003E\u003Ci\u003Eshvetski\u003C/i\u003E","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":4.963,"absoluteRating":11493,"dynamicRating":201.513,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-04-18T05:17:58.9205222+03:00","isValid":true,"isUnconfirmed":false,"isConfirmed":true,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":2,"counters":{"daysAtPortal":5703,"questions":35,"questionsPosts":1567,"questionsAnswers":588,"questionsPostsEvaluations":324,"forumPosts":44},"isRfproUserClass":true,"id":226425,"name":"Konstantin","email":"","role":1,"registDate":"1000-01-01T00:00:00","lastDate":"2024-04-11T23:40:15","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"red","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false}]
Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Здравствуйте! в университете задана была РГР по ассемблеру есть очень объемный код и преподаватель сказал,что нужно его упростить. задание на РГР: Определять тип символьной строки в текстовом файле (символы, цифры, смешанная); код очень объемный т.к. рассмотрены различные виды строк (слишком много) сказал оставить то что в задании и сложно написан по словам преподавателя, не могли бы вы помочь с упрощением?
[code lang=asm].MODEL small .CODE ORG 100H Begin: ;метка начала программы jmp Start filenameMsg db 'Имя файла: ' FileName DB 'string.txt',0,10,13,'$' charMsg db 'Строка букв',10,13,'$' binMsg db 'Двоичное число',10,13,'$' octMsg db 'Восьмеричное число',10,13,'$' decMsg db 'Десятичное число',10,13,'$' hexMsg db 'Шестнадцатеричное число',10,13,'$' mixedMsg db 'Строка состоит из смешанных символов',10,13,'$' typesHeader db 10,13,'Возможные типы строки:',10,13,'$' ErrStr DB 'Ошибка работы с файлом. Возможно, файл отсутствует.',10,13,'$' Header DB 'Расчетно-графическая работа',10,13,'<<Системное программное обеспечение>>',10,13,'Студента группы ИВТ-314',10,13,'Лобова В.А.',10,13,'Вариант 13',10,10,13,'$' PressContinue DB 'Press any key to continue...',10,10,13,'$' progSizeMsg db 'Размер программы: ' progSize db ' ',' байт',10,13,'$' isChar db 1 isBin db 1 isOct db 1 isDec db 1 isHex db 1 isMixed db 1 fileMsg db 'Строка в файле:' Buffer DB 80 DUP(0) Start: ;процедура вычисление размера файла lea dx, EndFile ;загружаем в dx адрес метки на конце файла mov ax, dx ;копируем в ax lea dx, Begin ;загружаем в dx адрес метки на начале файла sub ax,dx ;вычитаем из конца начало, получая размер в байтах в ax
;процедура перевода числа из регистра ax(размера программы) в символьную строку std ; Устанавливаем ОБРАТНЫЙ порядок записи lea di,progSize+3 ; ES:DI = последний символ строки progSize ;Начинаем перевод числа AX в строку mov cx,10 ; Задаемся делителем CX = 10 Repeat: mov dx,0 ; Обнуляем DX (для деления) div cx ; Делим DX:AX на CX (10), ;Получаем в AX частное, в DX остаток xchg ax,dx ; Меняем их местами (нас интересует остаток) add al,'0' ; Получаем в AL символ десятичной цифры stosb ; И записываем ее в строку progSize xchg ax,dx ; Восстанавливаем AX (частное) cmp ax,0 ; Сравниваем AX с 0 jne Repeat ; Если не ноль, то повторяем ;на этом вывод программы закончен. переходим к самой проге
lea dx,progSizeMsg ;загружаем адрес строки с размером программы call Show ;функция вывода
lea dx,Header ;загружаем адрес строки заголовка call Show ;функция вывода lea dx, filenameMsg ;загружаем адрес строки с именем файла call Show lea dx,PressContinue ;адрес строки с сообщением о продолжении call Show MOV AH,10H ;ожидание нажатия кнопки INT 16H
lea dx,FileName ;загружаем в dx адрес с именем файла call OpenFile ;получаем дескриптор файла через функцию jnc l ;проверить флаг на ошибку открытия файла(файл отсутствует) ;эта команда и ниже эквивалентны jc Error. Дальности условного перехода jc не хватает, поэтому используем jmp, так как у него дальность больше jmp Error l: mov bx,ax ;сохраняем дескриптор файла в bx lea dx,Buffer ;записываем адрес буфера в dx mov cx,1 ;сколько байт(символов) читать. Будем читать по одному символу Read: mov ah,3fh ;функция считывания из файла int 21h ;сервис dos inc dx ;сдвинем адрес записи на ячейку cmp ax, 0 ;в ax будет 0, если достигнут конец файла jnc l1 ;Аналогично эта команда и ниже эквивалентны одной команде jc Error. Дальности условного перехода jc не хватает, поэтому используем jmp, так как у него дальность больше jmp Error ;проверить флаг на ошибку l1: jne Read ;если не конец файла, читаем дальше mov si,dx mov [si],'$' dec dx ;dec dx
Call CloseFile ;функция закрытие файла
;начинаем обработку mov ax,dx ;сохраняем конечный адрес полученной строки в ax lea dx,Buffer ;берем начальный адрес строки ;call Show sub ax,dx ;Вычитаем из адреса конца строки адрес начала. Тем самым находим размер строки mov cx,ax ;сохраним размер строки в cx. Будем использовать его как счетчик.
lea dx, fileMsg ;выведем сообщение с содержимымм файла call Show
mov bx, 0 ;счетчик сдвига по буферу Process: mov al, [Buffer + bx] ;копируем из буфера очередной считанный символ cmp al,'0' ;сравниваем с ascii-кодом 0 jnb l2 ;Аналогично эта команда и ниже эквивалентны одной команде jb Error. Дальности условного перехода jb не хватает, поэтому используем jmp, так как у него дальность больше jmp Other ;в случае если значение лежит в интервале от начала до символа 0. l2: cmp al,'1' jbe Bin ;в случае если значение лежит в интервале от 0 до 1 включительно cmp al,'7' jbe Oct ;в случае если значение лежит в интервале от 1 до 7 включительно cmp al,'9' jbe Decim ;в случае если значение лежит в интервале от 8 до 9 включительно cmp al,'A' jnb l3 ;Аналогично эта команда и ниже эквивалентны одной команде jb Error. Дальности условного перехода jb не хватает, поэтому используем jmp, так как у него дальность больше jmp Other ;в случае если значение лежит в интервале от до 7 включительно l3: cmp al,'F' jbe Hex cmp al,'Z' jbe Char cmp al,'a' jnb l4 ;Аналогично эта команда и ниже эквивалентны одной команде jb Error. Дальности условного перехода jb не хватает, поэтому используем jmp, так как у него дальность больше jmp Other l4: cmp al,'f' jbe Hex cmp al,'z' jbe Char jmp Other
Char: ;если в строке есть буквы(начиная с g), значит это уже не число mov [isBin], 0 mov [isOct], 0 mov [isDec], 0 mov [isHex], 0 jmp Lop Bin: ;двоичное число. если в строке есть цифра, то это уже не строка букв mov [isChar], 0 jmp Lop Oct: ;восьмеричное число. если в строке есть цифра больше 1, то это уже не строка букв и не двоичное число. mov [isBin], 0 mov [isChar], 0 jmp Lop Decim: ;десятичное число. если в строке есть цифра больше 7, то это уже не строка букв, не двоичное и не восьмеричное число. mov [isBin], 0 mov [isOct], 0 mov [isChar], 0 jmp Lop Hex: ;шестнадцатеричное число. если в строке есть цифра больше 9(a-f), то это уже не строка букв, не двоичное, не восьмеричное и не десятичное число. mov [isBin], 0 mov [isOct], 0 mov [isDec], 0 jmp Lop Other: ;в случае, если в строке встретилась не буква и не цифра. mov [isBin], 0 mov [isOct], 0 mov [isDec], 0 mov [isHex], 0 mov [isChar], 0 jmp l5
Lop: inc bx ;увеличиваем счетчик сдвига по буферу dec cx ;уменьшаем общий счетчик cmp cx, 0 je l5 jmp Process
l5: lea dx, typesHeader ;выводим сообщение call Show
cmp [isChar], 1 ;проверяем, это строка букв? jne a1 ;если нет, то проверяем сразу следующий флаг lea dx, charMsg ;если да, выводим собщение об этом call Show mov [isMixed], 0 ;значит, это уже строка не смешанных символов
a1: cmp [isBin], 1 ;проверяем, это строка с двичным числом? jne a2 ;если нет, то проверяем сразу следующий флаг lea dx, binMsg ;если да, выводим собщение об этом call Show mov [isMixed], 0 ;значит, это уже строка не смешанных символов
a2: cmp [isOct], 1 ;проверяем, это строка с восьмеричным числом? jne a3 ;если нет, то проверяем сразу следующий флаг lea dx, octMsg ;если да, выводим собщение об этом call Show mov [isMixed], 0 ;значит, это уже строка не смешанных символов
a3: cmp [isDec], 1 ;проверяем, это строка с десятичным числом? jne a4 ;если нет, то проверяем сразу следующий флаг lea dx, decMsg ;если да, выводим собщение об этом call Show mov [isMixed], 0 ;значит, это уже строка не смешанных символов
a4: cmp [isHex], 1 ;проверяем, это строка с шестнадцатеричным числом? jne a5 ;если нет, то проверяем сразу следующий флаг lea dx, hexMsg ;если да, выводим собщение об этом call Show mov [isMixed], 0
a5: cmp [isMixed],1 ;проверяем, это строка букв? jne Exit ;если нет, заканчиваем lea dx, mixedMsg ;значит, это уже строка не смешанных символов call Show jmp Exit a6: Error: lea dx, ErrStr ;загружаем в dx адрес строки с сообщением об ошибке call Show
Exit: MOV AH,10H ;ожидание нажатия кнопки INT 16H
mov ah,04Ch ;функция DOS выхода из пpогpаммы mov al,0h ;код возвpата int 21h
OpenFile PROC ;Функция открытия файла mov ah,3dh ;функция открытия файла mov al,0 ;0 - открыть для чтения 1 - запись 2 - чтение,запись int 21h ;сервис dos ret ;возврат OpenFile ENDP CloseFile PROC ;функция закрытия файла mov ah,3eh ;функция закрытия файла int 21h ;сервис dos ret CloseFile ENDP Show PROC ;функция вывода mov ah,09 ;функция вывода строки на экран int 21h ;dos ret Show ENDP EndFile: ;метка на конце программы для вычисления ее размера End Begin
то так: [code lang=asm h=300]model tiny .code org 100h begin: lea dx,dbHead call Show mov ax,3D02h lea dx,dbName int 21h jnc @@01 aam or ax,'00' mov [dwErr],ax lea dx,dbError lea bx,Exit push bx jmp Show dbCheck db 0 dbBuff db 1 dwhndl dw ? @@01: mov dwHndl,ax xor di,di @@02: mov ah,3Fh mov bx,dwHndl mov cx,1 lea dx,dbBuff int 21h or ax,ax jz @@03 inc di mov al,[dbBuff] lea bx,dbType xlat mov cl,al mov al,1 shl al,cl or [dbCheck],al jmp @@02 @@03: mov ah,3Eh mov bx,dwHndl int 21h ; lea bx,Exit push bx mov al,[dbCheck] shr al,1 lea dx,dbChar cmp al,1 jz Show lea dx,dbNum cmp al,2 jz Show lea dx,dbComby Show proc mov ah,9 int 21h ret Show endp Exit: lea dx,dbFile call Show mov ax,di call OutNum lea dx,dbPress call Show xor ax,ax int 16h ret Outnum proc mov bx,10 xor cx,cx @@on: xor dx,dx div bx push dx inc cx or ax,ax jnz @@on @@ou: pop ax or al,'0' int 29h loop @@ou ret outNum endp dbType db 10h dup(0) db 10h dup(0) db 10h dup(0) db 10 dup(2),6 dup(0) db 0,15 dup(1) db 10 dup(1),6 dup(0) db 0,15 dup(1) db 10 dup(1),6 dup(0) dbName db 'String.txt',0 dbHead db 'Расчетно-графическая работа',10,13,'<<Системное программное обеспечение>>',10,13,'Студента группы ИВТ-314',10,13,'Лобова В.А.',10,13,'Вариант 13',10,13,'$' dbError db 10,13,'dont open file ' dwErr dw ? db ' $' dbNum db 10,13,'only numbers$' dbChar db 10,13,'only simbols$' dbComby db 10,10,'comby string$' dbFile db 10,13,'file size:$' dbPress db 10,13,'Press any key to continue . . .$' end begin[/code] Но если:
То код сильно не изменится, только строка dbType, с указаниями типа каждого символа
Вариант 13: Определять тип символьной строки в текстовом файле (строка букв, десятичное число, 16-ричное число, двоичное число и т.д.);
здравствуйте! вот задание, но как я упомянула выше нужно учитывать Буквенную,числовую и смешанную строки.
model tiny вот здесь должен быть small прилагаю доп. условия по программе: б) Формат программы: COM - программа; в) Ввод с клавиатуры: средствами DOS; г) Вывод на экран: в текстовом режиме; д) Динамическое распределение памяти: определение размера программы;
Блин, кто Вас учит. Код, который Вы выложили - написан в стиле TINY, но определен как SMALL.
Начинаем переучивать: Модели памяти и упрощенные директивы определения сегментов Модели памяти задаются директивой .MODEL .model модель,язык,модификатор где модель - одно из следующих слов:
TINY - код, данные и стек размещаются в одном и том же сегменте размером до 64 Кб. Эта модель памяти чаще всего используется при написании на ассемблере небольших программ;
SMALL - код размещается в одном сегменте, а данные и стек - в другрм (для их описания могут применяться разные сегменты, но объединенные в одну группу). Эту модель памяти также удобно использовать для создания программ на ассемблере;
COMPACT - код размещается в одном сегменте, а для хранения данных могут использоваться несколько сегментов, так что для обращения к данным требуется указывать сегмент и смещение (данные дальнего типа);
MEDIUM - код размещается в нескольких сегментах, а все данные - в одном, поэтому для доступа к данным используется только смещение, а вызовы подпрограмм применяют команды дальнего вызова процедуры;
LARGE и HUGE — и код, и данные могут занимать несколько сегментов;
FLAT - то же, что и TINY, но используются 32-битные сегменты, так что максимальный размер сегмента, содержащего и данные, и код, и стек, - 4 Мб.
Единственная модель памяти DOS, которая размещает код, данные, стек в одном сегменте - TINY, FLAT аналогична, но она для WINDOWS, и устроена несколько подругому. Только в модели TINY нет заголовка программы(его подставляет ОСь), компиляция всех остальных моделей, создает программы, которые начинаются с MZ-header. Если откроете в блокноте(а лучше в редакторе кода, к примеру HIEW, если у Вас его нет обзаведитесь) любую ЕХЕ-программу, Вы увидите подпись:
MZ, для Windows ещё одна подпись PE и адрес где она расположена в испольняемом файле. Если в HIEW смотреть файл СОМ, то там код начинается практически с нулевого байта.
С MZ Header ознакомитесь сами. Обратите внимание на таблицы настройки relocation table, с их помощью программа может получить доступ ко всем используемым сегментам.
Это то что касается
Таки модель TINY.
Все прерывания до 20h - прерывания BIOS, но 16h было исполльзовано Вами в коде.
Вывод исключительно средствами DOS, int 29h - не документированое сервисное прерывание DOS 1.0, но начиная кажись с DOS 3.0 документирована.
Пример есть в Вашем коде.
Но динамическое распредаление памяти - когда можно попросить у ОСи кусок памяти, использрвать его, потом вернуть обратно ОСи. Вот только при модели TINY, это не возможно. При запуске СОМ-программы, ОСь отдает этой программе ВСЮ память, которая доступна и без танцев с "бубном" тут ничего не сделать.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
, а то, что точки перед model нет, даже не упомянули(masm упадет с ошибкой, tasm - проглатывает). Ну раз у Вас TASM, можно "перелопатить" код до смешного.
Задание правда поставлено не точно, к примеру 1010: 10102=1010=128=А16, а может это 10108, или 101010, или 101016. Наличие цифры не говорит, что это число, она может указывать на что угодно, к примеру маркировку груза №ВВВВ1ААА.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
При запуске СОМ-программы, ОСь выделяет под неё один сегмент, т.е. 64кБ, но всю свободную память маркирует, как занятую.
[table] [row][col] 1[/col][col]0000-00FF[/col][col]Префикс программы, подставляется ОСью [/col][/row] [row][col] 2[/col][col]0100-xxxF [/col][col]Код программы[/col][/row] [row][col] 3[/col][col]xxxx-yyyF [/col][col]Данные программы[/col][/row] [row][col] 4[/col][col]yyyy-zzzF [/col][col]Не важно, что именно, может, и код, и данные, и мусор[/col][/row] [row][col] 5[/col][col]zzzz-FFFF [/col][col]Стек программы[/col][/row] [/table] Итого 64кБ, т.е. при любой длине программы на диске ,программа в памяти занимает 64кБ.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Здравствуйте ещё раз! А можно вас попросить добавить комментарий к программе, я не понимаю как программа считывает из файла информацию, посимвольно или же по другому используя какие либо метки. Спасибо
Блин, не успел. Код с комментариями: [code lang=asm h=300]model tiny,pascal .code org 100h .186 stdOut equ 1 ;выводим заголовок begin: call Show,offset dbHead ;открываем файл mov ax,3D02h lea dx,dbFile int 21h ;контролируем ошибку jnc @@01 ;записываем код ошибки aam or ax,'00' xchg al,ah mov dwErr,ax ;выводим сообщение об ошибке call Show,offset dbErr ;ждем нажатия любой клавыши Press proc uses ax call Show,offset dbPres xor ax,ax int 16h ret Press endp ;запоминаем указатель на файл @@01: mov dwHndl,ax ;читаем строку @@00: call Readln ;контролируем конец файла mov al,dbType or al,al ;если переменная типа равна нулю, значит ничего не обработали, т.е. конец файла ;иначе переходим на чтение новой строки jnz @@00 ;закрываем файл mov ah,3Eh mov bx,dwHndl int 21h ;сообщение о завершении работы call show,offset dbStop jmp Press ;подпрограмма вывода сообщения Show proc a:word uses ax,dx mov ah,9 mov dx,a int 21h ret Show endp ;переменная типа строки dbType db 0 ;указатель на файл dwHndl dw ? ;подпрограмма чтения строки Readln proc uses bx,cx,dx,di,si ;обнуляем длину xor di,di ;сбрасываем маркер типа строки mov byte ptr dbtype,0 ;читаем один символ @@03: mov ah,3Fh mov bx,dwHndl mov cx,1 lea dx,dbBuff+[di] int 21h ;прочитали 0 or ax,ax jz @@06;end of file ;загружаем прочитаный символ mov dl,[dbBuff+di] ;проверяем 13 cmp dl,13 jz @@03 ;проверяем 10 cmp dl,10 ;если конец строки проверяем строку jz @@06;end of line inc di lea si,dwType mov cx,7 ;устанавливаем тип прочитаного символа @@04: lodsw sub al,dl jns @@05 loop @@04 xor ah,ah @@05: mov cl,ah mov al,1 shl al,cl or dbType,al jmp @@03 ;готовим строку к выводу @@06: mov byte ptr[dbBuff+di],'$' mov al,dbType or al,al jz @@07 ;выводим строку call Show,offset dbStr ;взависимости от от типа будет выведена нужная строка mov al,dbType ;создаем индексное смещение lea bx,dwTable and ax,06h add bx,ax mov bx,[bx] ;выводим результат call Show,bx ;просим нажать кнопку call press @@07: nop ret ;check data dwType dw 0020h,0330h,0139h,0341h,024Bh,0361h,027Bh Readln endp dbServ db 10,13,'Service code$' dbDigit db 10,13,'Digital string$' dbChar db 10,13,'Char string$' dbComby db 10,13,'Comby snring$' dwTable dw offset dbServ,offset dbDigit,offset dbChar,offset dbComby dbFile db 'string.txt',0 dbHead db 10,13,'Расчетно-графическая работа' db 10,13,'<<Системное программное обеспечение>>' db 10,13,'Студента группы ИВТ-314 Лобова В.А.' db 10,13,'Вариант №13' db 10,10,13 db 10,13,'Размер программы: ' ;пусть длину считает компилятор a0 = szCode mod 10 b0 = szCode / 10 a1 = b0 mod 10 b1 = b0 / 10 a2 = b1 mod 10 b2 = b1 / 10 a3 = b2 mod 10 b3 = b2 / 10 ; db '0'+a3 db '0'+a2 db '0'+a1 db '0'+a0 db ' байт.' db 10,13 db'$' dbErr db 10,13,'Error code:' dwErr dw ? db '$' dbpres db 10,13,'Press any key to continue...$' dbStop db 10,13,'Stop program$' dbStr db 10,13,'строка в файле:' szCode equ $-begin ; dbBuff label byte end begin[/code] Компилировать нужно таким BAT-файлом, или набирать команды ручками.
ключ /М2 - указывает компилятору, что нужно пару раз пройтись по коду, по умолчанию только один раз. Иначе длину кода нужно подсчитывать в программе самостоятельно. D:\CAT\_Lang\Tasm\tasm.2\ - это путь к компилятору TASM 2.0(уменя их несколько). %1 - имя компилируемого файла. Проверялось на файле
Результат выглядит так:
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
здравствуйте! так как я уже начала сдавать с тем кодом который был написан ранее, можно я задам вопрос по нему и попрошу его закоментить. так как у преподавателя возникает вопрос : Как программа понимает где конец строки? Что именно является его концом, что и где сравнивается и определяется что это конец. код от 13.09.2019, 15:41
Последовательность 0D 0A обозначает конец строки, но есть редакторы которые считают концом строки только один код из этих. При загрузке файла память, редакторы выделяют на каждую строку достаточное количество "запасной" памяти, для внесения изменений, при записи эти участки игнорируются, и вместо них ставят маркер 0D 0A.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
То это было характерно для магнитных лент, сейчас ОСь выделяет под файл клатер(ы), все что там записано, это и есть файл, длина файла с таким именем хранится в другом месте.
Обратите внимание на то, что размер указан дважды, реальный и на диске.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Форма ответа
Отправка постов/ответов доступна только зарегистрированным и подтвержденным пользователям.
{"canUserNotesAccess":false,"canUserAdminsNotesAccess":false,"canAskQuestion":false,"canEditQuestions":false,"canSeeQuestionsComplains":false,"isSuperAdmin":false,"isAdmin":false,"isModer":false,"canCreateNewUser":false,"canConfirmUser":false,"canEditUserName":false,"canEditUserRole":false,"canEditUserEmail":false,"canEditUserPhone":false,"canEditUserBirthdate":false,"canEditUserCountry":false,"canEditSocialMedia":false,"canDeleteUserPhoto":false,"canDeleteUser":false,"canEditUserAbout":false,"canBanUser":false,"canResetUserPassword":false,"canEditRegistDate":false,"canChangeUserRating":false,"canAccessToAdmin":false,"canAnnouncements":false,"canManageQuestionPosts":false,"canManageForumSections":false,"canManageForumThreads":false,"canManageForumPosts":false,"canCreateForumThreads":false,"canSeeUserEmail":false,"canSeeUserPhone":false,"canSeeIPAddress":false,"canSeeUserRegistDate":false,"canSeeUserSocialMedia":false,"canSeeBirthDate":false,"canSeeUserCountry":false,"canSeeUserSettings":false,"canSeeDeletedPosts":false,"isEmailConfirmed":false,"tel":"","ip":"0.0.0.0","ipLocation":{"ip":"","sDate":0,"postalCode":"","country":"","countryIsoCode":"","federalDistrict":"","region":"","regionType":"","city":"","cityType":"","geoLat":"","geoLon":"","locationString":""},"birthDate":"0001-01-01T00:00:00","age":0,"isBirthdayToday":false,"ban":{"id":0,"userId":0,"isBanned":false,"startDate":"0001-01-01T00:00:00","endDate":"0001-01-01T00:00:00","moder":{"id":0,"name":"Неизвестный","email":"","role":0,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isValid":false,"isLoggedIn":false,"isUnconfirmed":true,"isConfirmed":false,"isNewUser":false,"isExisted":false,"isExpert":false,"isRfproUserClass":false},"reasonHTML":"","timeToUnbanString":"-17 мин."},"isBanned":false,"roleString":"Неподтвержден","roleIcon":"fa-user-clock","socialMedia":[],"aboutText":"","aboutHTML":"","signatureText":"","signatureHTML":"","country":{"id":0,"name":"","isFlagExists":false,"flagImage":"","isValid":false},"city":{"id":0,"name":"","countryId":0,"yandexCityId":0,"isValid":false},"averageEvaluation":0,"absoluteRating":0,"dynamicRating":0,"dynamicRatingStars":0,"timezone":{"id":283,"baseUtcOffset":"03:00:00","displayName":"(UTC\u002B03:00) Москва","linuxid":"Europe/Moscow"},"currentDateTime":"2024-04-18T08:17:58.9210065+03:00","isValid":false,"isUnconfirmed":true,"isConfirmed":false,"settings":{"fixedHeader":true,"fixedFooter":true,"leftColumnMode":2,"darkTheme":false,"topPanelBtns":[{"id":103,"text":"Главная","title":"Главная (начальная) страница Портала","icon":"fa-solid fa-house-chimney","colorClass":"text-info-emphasis","controller":"Home","action":"Index","accessLevel":0,"isDropdown":false},{"id":100,"text":"Вход в систему","title":"Войти в систему с использованием своих регистрационных данных (адрес электронной почты и пароль)","icon":"fa-solid fa-arrow-right-to-bracket","colorClass":"text-info-emphasis","controller":"Login","action":"Index","accessLevel":0,"isDropdown":false},{"id":101,"text":"Регистрация","title":"Зарегистрироваться в системе и стать полноценным участником сообщества","icon":"fa-solid fa-user-plus","colorClass":"text-info-emphasis","controller":"Regist","action":"Index","accessLevel":0,"isDropdown":false},{"id":102,"text":"Сброс пароля","title":"Сбросить пароль свой учетной записи, если Вы его забыли","icon":"fa-solid fa-key","colorClass":"text-danger-emphasis","controller":"Login","action":"ResetPassword","accessLevel":0,"isDropdown":false}],"topPanelBtnsHideText":false},"isLevelUpAllowed":false,"nextRole":1,"counters":{"daysAtPortal":0,"questions":0,"questionsPosts":0,"questionsAnswers":0,"questionsPostsEvaluations":0,"forumPosts":0},"isRfproUserClass":true,"id":0,"name":"Неизвестный","email":"","role":0,"registDate":"0001-01-01T00:00:00","lastDate":"0001-01-01T00:00:00","photo":"images/unophoto.png?v=9.4.12","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.12","photoPreview120":"images/unophoto.png?v=9.4.12","photoPreview100":"images/unophoto.png?v=9.4.12","photoPreview80":"images/unophoto.png?v=9.4.12","photoPreview40":"images/unophoto.png?v=9.4.12","isPhotoExists":false,"isLoggedIn":false,"isNewUser":false,"isExisted":false,"isExpert":false}