[{"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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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":1684.698,"dynamicRatingStars":10,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-03-29T14:17:20.5138923+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":6525,"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-03-27T19:01:17","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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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":463.397,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-03-29T14:17:20.5141647+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":5557,"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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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":414.846,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-03-29T14:17:20.5143346+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":5242,"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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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":391.716,"dynamicRatingStars":8,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-03-29T14:17:20.5144567+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":2415,"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":"red","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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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":224.691,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-03-29T14:17:20.5145986+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":2693,"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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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":202.204,"dynamicRatingStars":7,"timezone":{"id":0,"baseUtcOffset":"00:00:00","displayName":"[не установлен]","linuxid":"notset/clean"},"currentDateTime":"2024-03-29T14:17:20.5147118+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":5684,"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":"2023-09-16T03:51:40","photo":"images/unophoto.png?v=9.4.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","isPhotoExists":false,"isLoggedIn":true,"isNewUser":false,"isExisted":true,"isExpert":false}]
Здравствуйте! У меня возникли сложности с таким вопросом: В программе на форме лежит компонент TChart, на котором в процессе работы программы строится график (Series), по окончании данные графика загружаются в текстовые файлы, что бы иметь возможность в дальнейшем по данным из файлов воспроизвести график.
Код:
//сохраняем данные графика в текстовые файлы
procedure TForm1.SaveToTxtFile1Click(Sender: TObject); var sx, sy: TStringList; i: integer; begin sx := TStringList.Create; sy := TStringList.Create; for i := 0 to chart.Series[0].XValues.Count - 1 do sx.Add(FloatToStr(chart.Series[0].XValues.Value[i])); for i := 0 to chart.Series[0].YValues.Count - 1 do sy.Add(FloatToStr(chart.Series[0].YValues.Value[i])); sx.SaveToFile('x.txt'); sy.SaveToFile('y.txt'); sx.Free; sy.Free; end;
//читаем данные из текстовых файлов и создаём на их основе новый график
procedure TForm1.LoadFromTxtFile1Click(Sender: TObject); var sx, sy: TStringList; i: integer; begin sx := TStringList.Create; sy := TStringList.Create; sx.LoadFromFile('x.txt'); sy.LoadFromFile('y.txt'); for i := 0 to sx.Count - 1 do chart.Series[0].AddXY(StrToFloat(sx[i]), StrToFloat(sy[i])); sx.Free; sy.Free; end;
Помогите мне модернизировать этот код так, что бы файл был один и в него можно было бы записать данные нескольких графиков с возможностью их воспроизведения. Данные по оси X должны идти первой колонкой. Файл обозвать (FormatDateTime('dd.mm.yyyy_hh.mm', now) + '.txt') и добавить компонент TOpenDialog для возможности выбора.
Как в один TStringList циклом по chart.SeriesCount (серий может быть несколько) заносить данные столбцами (притом, что бы данные с оси X были бы первым столбцом и использовались один раз, они для всех серий одинаковы).
Можно так: [code lang=pascal h=200]unit q170221; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Chart1: TChart; Series1: TLineSeries; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; const FileName:string='z.txt'; var Form1: TForm1; implementation {$R *.dfm} //create procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin {если есть серии, удаляем} while Form1.Chart1.SeriesCount>0 do Form1.Chart1.Series[0].Free; {добавляем и заполняем первую серию} Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[0].Clear; for i:=-10 to 10 do Form1.Chart1.Series[0].AddXY(i,i*i/3,'',clGreen); {добавляем и заполняем вторую серию} Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[1].Clear; for i:=-10 to 10 do Form1.Chart1.Series[1].AddXY(i,i*i/5,'',clRed); end; //save procedure TForm1.Button2Click(Sender: TObject); var a:string; z:TStringList; i,j:integer; begin z:=TStringList.Create; {цикл по серии} for i:=0 to Form1.Chart1.Series[0].count-1 do begin {получаем х} a:=FloatToStr(Form1.Chart1.Series[0].XValue[i])+' '; {цикл по сериям} for j:=0 to Form1.Chart1.SeriesCount-1 do a:= a+ FloatToStr(Form1.Chart1.Series[j].YValue[i])+' '; z.Add(a); end; z.SaveToFile(FileName); z.Free; end; //load procedure TForm1.Button3Click(Sender: TObject); var w:string; x,y:real; z:TStringList; i,j:integer; begin {если есть серии, удаляем} while Form1.Chart1.SeriesCount>0 do Form1.Chart1.Series[0].Free; z:=TStringList.Create; z.LoadFromFile(FileName); w:=z[0]; {удаляем х} delete(w,1,pos(' ',w)); j:=0; {создаем нужное количество серий} while pos(' ',w)>0 do begin {удаляем очередной у} delete(w,1,pos(' ',w)); Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[j].Clear; inc(j); end; for i:=0 to z.Count-1 do begin w:=z[i]; {получаем х} x:=StrToFloat(copy(w,1,pos(' ',w)-1)); delete(w,1,pos(' ',w)); for j:=0 to Form1.Chart1.SeriesCount-1 do begin{получаем у в серии} y:=StrToFloat(copy(w,1,pos(' ',w)-1)); delete(w,1,pos(' ',w)); Form1.Chart1.Series[j].AddXY(x,y+j,'',clRed+j); end; end; z.Free; end; end.[/code]
Delphi 6
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
из-за строчки Form1.Chart1.Series[ j ].AddXY(x,y+j,'',clRed+j);, где переменная J изменяет координату Y, она была введена намеренно, чтобы видеть разницу, между какбы одинаковыми графиками.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
А в коде: [code lang=pascal h=50] for i := -10 to 10 do . . . for i := 0 to 300 do[/code] а запись ведется по первой серии Form1.Chart1.Series[0].count - 1 Можно по сериям найти максимальный счетчик и при записи в файл, если серия меньше максимума, то писать какой нибудь знак типа "#", а при загрузке когда он встретится на месте серии, её игнорировать.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin { } while Form1.Chart1.SeriesCount > 0 do Form1.Chart1.Series[0].Free; //??? FreeAllSeries; { } Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[0].Clear; for i := -10 to 10 do Form1.Chart1.Series[0].AddXY(i, i * i / 3, '', clGreen); { } Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[1].Clear; for i := -10 to 10 do Form1.Chart1.Series[1].AddXY(i, i * i / 5, '', clRed);
//добавил ещё один график от себя Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[2].Clear; for i := 0 to 300 do begin Form1.Chart1.Series[2].AddXY(i, 4 * sin(i * pi / 180), '', clBlue); end;
end;
//save
procedure TForm1.Button2Click(Sender: TObject); var a: string; z: TStringList; i, j,m: integer; begin z := TStringList.Create; { } m:=0; for i:=0 to Form1.Chart1.SeriesCount-1 do if m<Form1.Chart1.Series[i].Count then m:=i; { } for i := 0 to Form1.Chart1.Series[m].Count - 1 do begin { }//тут всё зло a := FloatToStr(Form1.Chart1.Series[m].XValue[i]) + ' '; { } for j := 0 to Form1.Chart1.SeriesCount - 1 do if i<Form1.Chart1.Series[j].Count then a := a + FloatToStr(Form1.Chart1.Series[j].YValue[i]) + ' ' else a:=a+'# '; z.Add(a); end; z.SaveToFile(FileName); z.Free; end;
//load
procedure TForm1.Button3Click(Sender: TObject); var w: string; x, y: real; z: TStringList; i, j: integer; begin { } while Form1.Chart2.SeriesCount > 0 do Form1.Chart2.Series[0].Free; //??? FreeAllSeries; z := TStringList.Create; z.LoadFromFile(FileName); w := z[0]; { } delete(w, 1, pos(' ', w)); j := 0; { } while pos(' ', w) > 0 do begin { } delete(w, 1, pos(' ', w)); Form1.Chart2.AddSeries(TLineSeries.Create(self)); Form1.Chart2.Series[j].Clear; inc(j); end; for i := 0 to z.Count - 1 do begin w := z[i]; { } x := StrToFloat(copy(w, 1, pos(' ', w) - 1)); delete(w, 1, pos(' ', w)); for j := 0 to Form1.Chart2.SeriesCount - 1 do begin { } if w[1]<>'#' then begin y := StrToFloat(copy(w, 1, pos(' ', w) - 1)); Form1.Chart2.Series[j].AddXY(x, y, '', clRed); end; delete(w, 1, pos(' ', w)); end; end; z.Free; end; end.[/code]
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Константин большое спасибо что Вы столько времени мне удили ли и я наверное уже Вам надоел, но у меня опять проблемка. Я так понимаю, что строчки "... Form1.Chart1.Series[ j ].AddXY(x,y+j,'',clRed+j);, где переменная J изменяет координату Y, она была введена намеренно, чтобы видеть разницу, между как бы одинаковыми графиками..." теперь нет, тогда я не понимаю почему так графики разняться, я опять данные немного поменял см. файл
Проблема в том, что CHART рисуя графики в разных сериях автоматически выравнивает их оси по Х, когда все это загоняется в файл:
А сохраняя в файл мы их не выравниваем по оси Х(как это мы уже делали с хвостом серий). Т.е. получается нужно искать минимальный Х в сериях и потом его сохраняя, игнорировать те серии, которые не попадают в интервал.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Если Вы про то что один график скажем так начинается от -20, а другой от 0 то я не об этом. Посмотрите в моём примере например на зелёную серию, в исходном примере примерно координате по оси X=50 соответствует координата Y=500, а на сохранённом Y=180.
procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin { } while Form1.Chart1.SeriesCount > 0 do Form1.Chart1.Series[0].Free; //??? FreeAllSeries; { } Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[0].Clear; for i := -10 to 25 do Form1.Chart1.Series[0].AddXY(i, i * i / 3, ''); { } Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[1].Clear; for i := -20 to 50 do Form1.Chart1.Series[1].AddXY(i, i * i / 5, '');
//äîáàâèë åù¸ îäèí ãðàôèê îò ñåáÿ Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[2].Clear; for i := 0 to 100 do begin Form1.Chart1.Series[2].AddXY(i, 4 * sin(i * pi / 180), ''); end;
end; //save
procedure TForm1.Button2Click(Sender: TObject); var a: string; b:array of integer; z: TStringList; i, j, xMin, xMax: integer; begin z := TStringList.Create; { } xMax:=round(Form1.Chart1.Series[0].XValue[0]); xMin:=round(Form1.Chart1.Series[0].XValue[0]); for j := 0 to Form1.Chart1.SeriesCount - 1 do for i:= 0 to Form1.Chart1.Series[j].Count - 1 do begin if xMax < Form1.Chart1.Series[j].xValue[i] then xMax:=round(Form1.Chart1.Series[j].xValue[i]); if xMin > Form1.Chart1.Series[j].xValue[i] then xMin:=round(Form1.Chart1.Series[j].xValue[i]); end; { } SetLength(b,Form1.Chart1.SeriesCount); for i:=0 to Form1.Chart1.SeriesCount - 1 do b[i]:=-1; { } for i := xMin to xMax do begin { } a := FloatToStr(i) + ' '; { } for j:=0 to Form1.Chart1.SeriesCount-1 do if b[j]=-1 then if i=round(Form1.Chart1.Series[j].XValue[0]) then b[j]:=0; { } for j:=0 to Form1.Chart1.SeriesCount-1 do if(b[j]<>-1)and(b[j]<Form1.Chart1.Series[j].Count) then a := a + FloatToStr(Form1.Chart1.Series[j].YValue[b[j]]) + ' ' else a := a + '# '; { } for j:=0 to Form1.Chart1.SeriesCount-1 do if b[j]<>-1 then inc(b[j]); { } z.Add(a); end; z.SaveToFile(FileName); z.Free; end; //load
procedure TForm1.Button3Click(Sender: TObject); var w: string; x, y: real; z: TStringList; i, j: integer; begin { } while Form1.Chart2.SeriesCount > 0 do Form1.Chart2.Series[0].Free; //??? FreeAllSeries; z := TStringList.Create; z.LoadFromFile(FileName); w := z[0]; { } delete(w, 1, pos(' ', w)); j := 0; { } while pos(' ', w) > 0 do begin { } delete(w, 1, pos(' ', w)); Form1.Chart2.AddSeries(TLineSeries.Create(self)); Form1.Chart2.Series[j].Clear; inc(j); end; for i := 0 to z.Count - 1 do begin w := z[i]; { } x := StrToFloat(copy(w, 1, pos(' ', w) - 1)); delete(w, 1, pos(' ', w)); for j := 0 to Form1.Chart2.SeriesCount - 1 do begin { } if w[1] <> '#' then begin y := StrToFloat(copy(w, 1, pos(' ', w) - 1)); Form1.Chart2.Series[j].AddXY(x, y, ''); end; delete(w, 1, pos(' ', w)); end; end; z.Free; end; end.[/code]
Сразу говорю, это частный случай для целых значений Х.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Это плохо. Константин последняя просьба. Сохрани пожалуйста по серийно, в разные файла (имя файла - имя серии, два столбца - X,Y), а при загрузке добавь компонент TOpenDialog для возможности выбора серии.
Смотрите приложение: [code lang=pascal h=200]unit q170221; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Chart1: TChart; Series1: TLineSeries; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private{ Private declarations } public{ Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} //create procedure TForm1.Button1Click(Sender: TObject); var i: integer; begin Form1.Chart1.FreeAllSeries; Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[0].Clear; for i := -10 to 25 do Form1.Chart1.Series[0].AddXY(i, i * i / 3, ''); Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[1].Clear; for i := -20 to 50 do Form1.Chart1.Series[1].AddXY(i, i * i / 5, ''); Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[2].Clear; for i := 0 to 300 do begin Form1.Chart1.Series[2].AddXY(i, 4 * sin(i * pi / 180), ''); end; end; //save procedure TForm1.Button2Click(Sender: TObject); var a: string; d: TDateTime; z: TStringList; i, j: integer; function ReverseDateFormat(a:string):string; begin if pos('.',a)>0 then a:=ReverseDateFormat(copy(a,pos('.',a)+1,length(a)))+'.'+copy(a,1,pos('.',a)-1); ReverseDateFormat:=a; end; begin for j:=0 to Form1.Chart1.SeriesCount-1 do begin z := TStringList.Create; for i:=0 to Form1.Chart1.Series[j].Count-1 do z.Add(FloatToStr(Form1.Chart1.Series[j].XValue[i])+' '+ FloatToStr(Form1.Chart1.Series[j].YValue[i])); d:=now; a:=DateToStr(d); while pos('/',a)>0 do a[pos('/',a)]:='.'; a:=reverseDateFormat(a); a:=a+'.s'+chr(ord('0')+(j div 10))+chr(ord('0')+(j mod 10))+'.txt'; z.SaveToFile(a); z.Free; end; end; //load procedure TForm1.Button3Click(Sender: TObject); var openDialog:TOpenDialog; w: string; x, y: real; z: TStringList; i: integer; begin Form1.Chart1.FreeAllSeries; openDialog := TOpenDialog.Create(self); openDialog.InitialDir := GetCurrentDir; openDialog.Options := [ofFileMustExist]; openDialog.Filter :='*.txt'; Form1.Chart1.AddSeries(TLineSeries.Create(self)); Form1.Chart1.Series[0].Clear; if openDialog.Execute then begin w:=openDialog.FileName; while pos('\',w)>0 do delete(w,1,pos('\',w)); z:=TStringList.Create; z.LoadFromFile(w); for i:=0 to z.Count-1 do begin w:=z[i]; x:=StrToFloat(copy(w,1,pos(' ',w)-1)); delete(w,1,pos(' ',w)); y:=StrToFloat(w); Form1.Chart1.Series[0].AddXY(x,y); end; z.Free; end else ShowMessage('немогу открыть файл'); openDialog.Free; end; end.[/code] Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
Форма ответа
Отправка постов/ответов доступна только зарегистрированным и подтвержденным пользователям.
{"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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","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-03-29T17:17:20.515245+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.11","lastDateIndicatorClass":"gray","lastDateIndicatorText":"давно","photoPreview200":"images/unophoto.png?v=9.4.11","photoPreview120":"images/unophoto.png?v=9.4.11","photoPreview100":"images/unophoto.png?v=9.4.11","photoPreview80":"images/unophoto.png?v=9.4.11","photoPreview40":"images/unophoto.png?v=9.4.11","isPhotoExists":false,"isLoggedIn":false,"isNewUser":false,"isExisted":false,"isExpert":false}