เบเบฐเบงเบฑเบเบชเบฒเบ
เบกเบฑเบเปเบเบตเบเบเบถเปเบเบเบฑเปเบเบเบฑเปเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบเปเบเบทเบเปเบเบกเบเบตเปเบเบเปเบเบทเปเบญเปเบงเบฃเบฑเบช ransomware, เปเบเบดเปเบ, เปเบเบ "เบญเบธเบเบฐเบเบดเปเบซเบเปเบเบเบเบต", เบเบฒเบเบชเปเบงเบเปเบฎเบฑเบเปเบซเปเปเบเบฅเป .ibd (เปเบเบฅเปเบเปเปเบกเบนเบเบเบดเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบ innodb) เบเปเปเปเบเปเบฎเบฑเบเบเบฒเบเปเบเบฐเบเปเบญเบ, เปเบเปเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเปเบเปเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเปเบเบฅเป .fpm เบขเปเบฒเบเบชเบปเบกเบเบนเบ (. เปเบเบฅเปเปเบเบเบชเปเบฒเบ). เปเบเบเปเบฅเบฐเบเบตเบเบตเป, .idb เบชเบฒเบกเบฒเบเปเบเปเบเบญเบญเบเปเบเบฑเบ:
- เบเบถเปเบเบเบฑเบเบเบฒเบเบเบทเปเบเบเบนเปเบเบเบเปเบฒเบเปเบเบทเปเบญเบเบกเบทเบกเบฒเบเบเบฐเบเบฒเบเปเบฅเบฐเบเบนเปเบกเบท. เบชเปเบฒเบฅเบฑเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบง, เบกเบตเบเบตเปเบเบตเปเบฅเบตเบ
เบเบฒเบโเปเบเบฑเบ ; - เบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบเบทเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบเบฒเบเบชเปเบงเบ. เบชเปเบงเบเปเบซเบเปเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเบฒเบเบฐเบฅเบฒเบเบเบฐเบซเบเบฒเบเปเบซเบเป, เปเบเบดเปเบ (เบเบฒเบกเบเบตเปเบเปเบญเบเปเบเบปเปเบฒเปเบ) เบเบนเปเปเบเบกเบเบตเบเปเปเบกเบต RAM เบเบฝเบเบเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเปเบเบฑเบก;
- เบเบต, เบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบเบทเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบขเปเบฒเบเปเบเบฑเบกเบชเปเบงเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเบเบทเปเบเบเบนเปเบเป.
เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเปเบฒเบเบปเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเบฒเบเบฐเบฅเบฒเบเปเบเบฑเบเบเบญเบเปเบเบเบเบฝเบเปเบเปเปเบเบตเบเบกเบฑเบเบขเบนเปเปเบเบเบปเบงเปเบเปเปเบเบเปเปเบเบงเบฒเบกเปเบเปเบเบฒเบเปเบเปเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบ (เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบญเบเบกเบฑเบเปเบกเปเบ UTF8) เปเบฅเบฐเบเบฝเบเปเบเปเปเบเบดเปเบเปเบเบฅเปเบชเปเบฒเบฅเบฑเบเบเบฒเบเบกเบตเบเปเบญเบเบเปเปเบเบงเบฒเบก, เบเบปเบงเบขเปเบฒเบ:
เบเบญเบเบเบฒเบเบเบตเป, เปเบเบเบญเบเบเบปเปเบเบเบญเบเปเบเบฅเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบฑเบเปเบเบเปเบซเบฑเบเบเปเบฒเบเบงเบเบซเบฅเบฒเบเบเบญเบ 0 bytes, เปเบฅเบฐเปเบงเบฃเบฑเบชเบเบตเปเปเบเปเบฅเบฐเบเบปเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบเบฅเบฑเบญเบ (เบเบปเปเบงเปเบเบเบตเปเบชเบธเบ) เบกเบฑเบเบเบฐเบกเบตเบเบปเบเบเบฐเบเบปเบเบเปเปเบเบงเบเบกเบฑเบเปเบเบฑเปเบเบเบฑเบ.
เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบญเบ, เบเบนเปเปเบเบกเบเบตเปเบเปเบเบฐเปเบงเป 4-byte string (1, 0, 0, 0) เปเบเบเบญเบเบเปเบฒเบเบเบญเบเปเบเปเบฅเบฐเปเบเบฅเปเบเบตเปเบเบทเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเปเบงเบฝเบเบเบฒเบเบเปเบฒเบเบเบฒเบ. เปเบเบทเปเบญเบเบญเบเบซเบฒเปเบเบฅเปเบเบตเปเบเปเปเบกเบตเบเบฒเบเบเบดเบเปเบเบทเปเบญ, script เปเบกเปเบเบเบฝเบเบเป:
def opened(path):
files = os.listdir(path)
for f in files:
if os.path.isfile(path + f):
yield path + f
for full_path in opened("C:somepath"):
file = open(full_path, "rb")
last_string = ""
for line in file:
last_string = line
file.close()
if (last_string[len(last_string) -4:len(last_string)]) != (1, 0, 0, 0):
print(full_path)
เบเบฑเปเบเบเบฑเปเบ, เบกเบฑเบเปเบเปเบซเบฑเบเบญเบญเบเปเบเบทเปเบญเบเบญเบเบซเบฒเปเบเบฅเปเบเบตเปเปเบเบฑเบเบเบญเบเบเบฐเปเบเบเบเปเบฒเบญเบดเบ. เบญเบฑเบเบเบตเบชเบญเบเบเปเบฝเบงเบเปเบญเบเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบนเปเบกเบทเบซเบผเบฒเบ, เปเบเปเบชเบดเปเบเบเบตเปเบเบปเบเปเบซเบฑเบเปเบกเปเบเบเบฝเบเบเปเปเบฅเปเบง. เบเบธเบเบขเปเบฒเบเบเบฐเบเบต, เปเบเปเปเบเบปเปเบฒเบเปเบญเบเบฎเบนเป เปเบเบเบชเปเบฒเบเบเบตเปเบเบฑเบเปเบเบเบขเปเบฒเบเปเบเปเบเบดเบ เปเบฅเบฐ (เปเบเปเบเบญเบ) เบเปเบฅเบฐเบเบตเปเบเบตเบเบเบถเปเบเบเบตเปเบเปเบญเบเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเปเบฅเบทเปเบญเบเป. เบเปเปเบกเบตเปเบเบเบทเปเปเบเปเบงเปเบฒเบเบฐเปเบเบเบเบฒเบเบชเบฐเบซเบเบฒเบกเปเบเปเบเบทเบเบเปเบฝเบเปเบเบเบซเบผเบทเบกเบตเบเบฑเบเปเบซเบกเปเบเบทเบเปเบเบตเปเบก.
Wilds City, เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, เบเปเปเบชเบฒเบกเบฒเบเบเปเบงเบเบเบฑเบเบเปเบฅเบฐเบเบตเบเบฑเปเบเบเปเบฒเบง, เปเบเบดเปเบเปเบเบฑเบเปเบซเบเบเบปเบเบเบตเปเบงเปเบฒเบเบปเบเบเบงเบฒเบกเบเบตเปเบเบทเบเบเบฝเบ.
เปเบเบฎเบญเบเบเบธเบ
เบกเบตเปเบเบเบชเปเบฒเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบเบเบฒเบ 3 เปเบเบทเบญเบเบเปเบญเบเบซเบเปเบฒเบเบตเปเบเบตเปเบเปเปเบเบปเบเบเบฑเบเบเบฑเบเบเบฐเบเบธเบเบฑเบ (เบญเบฒเบเบเบฐเปเบเบฑเบเบซเบเบถเปเบเบเบฒเบเบชเบฐเบซเบเบฒเบก, เปเบฅเบฐเบญเบฒเบเบเบฐเปเบเบฑเบเบซเบผเบฒเบเบเบงเปเบฒเบเบฑเปเบ). เปเบเบเบชเปเบฒเบเบเบฒเบเบฐเบฅเบฒเบ:
CREATE TABLE `table_1` (
`id` INT (11),
`date` DATETIME ,
`description` TEXT ,
`id_point` INT (11),
`id_user` INT (11),
`date_start` DATETIME ,
`date_finish` DATETIME ,
`photo` INT (1),
`id_client` INT (11),
`status` INT (1),
`lead__time` TIME ,
`sendstatus` TINYINT (4)
);
เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบชเบฐเบเบฑเบ:
id_point
int(11);id_user
int(11);date_start
DATETIME;date_finish
DATETIME.
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบทเปเบเบเบปเบง, เบเบฒเบเบงเบดเปเบเบฒเบฐ byte-by-byte เบเบญเบเปเบเบฅเป .ibd เบเบทเบเบเปเบฒเปเบเป, เบเบฐเบเบดเบเบฑเบเบเบฒเบกเปเบเบเบเบฒเบเบเปเบฝเบเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบปเปเบฒเปเบเปเบเบฎเบนเบเปเบเบเบเบตเปเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเบซเบผเบฒเบ. เบเบฑเบเบเบฑเปเบเปเบเปเปเบเบทเปเบญเบเบญเบเบซเบฒเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบงเบดเปเบเบฒเบฐเบเบฐเปเบเบเบเปเปเบกเบนเบเปเบเบฑเปเบ int เปเบฅเบฐ datatime, เบเบปเบเบเบงเบฒเบกเบเบฐเบญเบฐเบเบดเบเบฒเบเบเบฝเบเปเบเปเบเบงเบเปเบเบปเบฒ, เปเบเปเบเบฒเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบซเบกเบฒเบเปเบเบดเบเบเบฐเปเบเบเบเปเปเบกเบนเบเบญเบทเปเบเป, เปเบเบดเปเบเบชเบฒเบกเบฒเบเบเปเบงเบเปเบเปเบซเบเบเบฒเบเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบญเบทเปเบเป.
เบเบฑเบเบซเบฒ 1: เบเปเบญเบเบเปเปเบกเบนเบเบเบตเปเบกเบตเบเบฐเปเบเบ DATETIME เปเบฅเบฐ TEXT เบกเบตเบกเบนเบเบเปเบฒ NULL, เปเบฅเบฐเบเบงเบเบกเบฑเบเบเบทเบเบเปเบฒเบกเบเบฝเบเปเบเปเบขเบนเปเปเบเปเบเบฅเป, เปเบเบทเปเบญเบเบเบฒเบเบงเปเบฒเบเบตเป, เบกเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเปเบเบเบชเปเบฒเบเปเบเบทเปเบญเบเบทเปเบเบเบนเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบญเบ. เปเบเบเบฑเบเปเบซเบกเป, เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบกเปเบ null, เปเบฅเบฐเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบเบธเบฅเบฐเบเปเบฒเบญเบฒเบเบเบฐเบชเบนเบเปเบชเบเปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเบฑเปเบเบเปเบฒ innodb_flush_log_at_trx_commit = 0, เบเบฑเปเบเบเบฑเปเบเบเบฐเบเปเบญเบเปเบเปเปเบงเบฅเบฒเปเบเบตเปเบกเปเบเบตเบกเปเบเบทเปเบญเบเปเบฒเบเบปเบเปเบเบเบชเปเบฒเบ.
เบเบฑเบเบซเบฒ 2: เบกเบฑเบเบเบงเบเบเบฐเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒเบงเปเบฒเปเบเบงเบเบตเปเบเบทเบเบฅเบปเบเบเปเบฒเบ DELETE เบเบฑเบเบซเบกเบปเบเบเบฐเบขเบนเปเปเบเปเบเบฅเป ibd, เปเบเปเบเปเบงเบ ALTER TABLE เปเบเบเบชเปเบฒเบเบเบญเบเบเบงเบเบกเบฑเบเบเบฐเบเปเปเบเบทเบเบเบฑเบเบเบธเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบเบเบชเปเบฒเบเบเปเปเบกเบนเบเบชเบฒเบกเบฒเบเปเบเบเบเปเบฒเบเบเบฑเบเบเบฒเบเบเบธเบเปเบฅเบตเปเบกเบเบปเปเบเบเบญเบเปเบเบฅเปเบเบปเบเปเบเบดเบเบเบตเปเบชเบธเบ. เบเปเบฒเบเปเบฒเบเบกเบฑเบเปเบเป OPTIMIZE TABLE, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบเบปเบเบเบฐเบเปเปเบเบปเบเบเบฑเบเบซเบฒเบเบฑเปเบเบเปเบฒเบง.
เบเปเบฒเบเปเบญเบปเบฒเปเบเปเบชเป, เบชเบฐเบเบฑเบ DBMS เบกเบตเบเบปเบเบเบฐเบเบปเบเบงเบดเบเบตเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบ, เปเบฅเบฐเบเบปเบงเบขเปเบฒเบเบเบตเปเบญเบฒเบเบเบฐเบเปเปเปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฑเบเบเบตเปเบชเปเบฒเบเบฑเบเบญเบทเปเบเป. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบญเบ, เบชเบฐเบเบฑเบ windows เบเบญเบ mariadb 10.1.24 เบเบทเบเบเปเบฒเปเบเป. เบเบญเบเบเบฒเบเบเบฑเปเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบ mariadb เบเปเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฒเบเบฐเบฅเบฒเบ InnoDB, เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบเบเบงเบเบกเบฑเบเปเบกเปเบ
เบเบฒเบเบงเบดเปเบเบฒเบฐเปเบเบฅเป
เปเบ python, เบเบฐเปเบเบเบเปเปเบกเบนเบ
เบซเบผเบฑเบเบเบฒเบเปเบเบดเปเบเปเบเบฅเป ibd เบซเบผเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบเบฑเปเบเบเปเปเปเบเบเบตเป:
เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบเปเบฒเบเปเบฒเบเปเบเปเบเปเบเบฅเปเปเบเบเบเปเบฒเบชเปเบฒเบเบฑเบเปเบซเบผเบปเปเบฒเบเบตเป, เบเปเบฒเบเบเบฐเปเบเปเบฎเบฑเบเบเปเปเบกเบนเบเปเบเบทเบญเบเบเบฑเบเบซเบกเบปเบ. เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป infimum เปเบเบฑเบเบเบปเบงเบซเบฒเบ.
table = table.split("infimum".encode())
เบเบฒเบเบชเบฑเบเปเบเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบ: เบชเปเบฒเบฅเบฑเบเบเบฒเบเบฐเบฅเบฒเบเบเบตเปเบกเบตเบเปเบฒเบเบงเบเบเปเปเบกเบนเบเบเบฐเบซเบเบฒเบเบเปเบญเบ, เบฅเบฐเบซเบงเปเบฒเบ infimum เปเบฅเบฐ supremum เบกเบตเบเบปเบงเบเบตเปเปเบเบซเบฒเบเปเบฒเบเบงเบเปเบเบงเบขเบนเปเปเบเบเบฑเบ.
- เบเบฒโเบเบฐโเบฅเบฒเบโเบเบปเบโเบชเบญเบโเบเบตเปโเบกเบตโเปเบเบงโเบเบต 1โ
- เบเบฒเบเบฐเบฅเบฒเบเบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบกเบต 2 เปเบเบง
เบเบฒเบเบฐเบฅเบฒเบ array เปเบเบง[0] เบชเบฒเบกเบฒเบเบเปเบฒเบกเปเบเป. เบซเบผเบฑเบเบเบฒเบเปเบเบดเปเบเบเปเบฒเบเบกเบฑเบ, เบเปเบญเบเบเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบเปเปเบกเบนเบเบเบฒเบเบฐเบฅเบฒเบเบเบดเบเปเบเป. เบชเปเบงเบเบซเบผเบฒเบเบญเบฒเบเบเบฐ, เบเบฑเบเบเบตเปเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบฑเบเบชเบฐเบเบตเปเบฅเบฐเบเบต.
เปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบเบเบฒเบเบฐเบฅเบฒเบ[1] เปเบฅเบฐเปเบเปเบเบฑเบ array เบเบปเบงเปเบฅเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเบฑเบเปเบเบเปเบซเบฑเบเบเบฒเบเบฎเบนเบเปเบเบ, เบเบท:
เปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเปเบฒ int เบเบตเปเปเบเบฑเบเปเบงเปเปเบเบชเบฐเบเบฃเบดเบ. เปเบเบเปเบเบณเบญเบดเบเบเบตเปเบเบญเบเบงเปเบฒเบเบปเบงเปเบฅเบเปเบเบฑเบเบเบงเบ เบซเบผเบทเบฅเบปเบ. เปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบญเบ, เบเบปเบงเปเบฅเบเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบเบงเบ. เบเบฒเบ 3 bytes เบเบตเปเบเบฑเบเปเบซเบผเบทเบญ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบปเบงเปเบฅเบเปเบเบเปเบเปเบเบฑเบเบเบฑเบเบเปเปเปเบเบเบตเป. เบชเบฐเบเบฃเบดเบ:
def find_int(val: str): # example '128, 1, 2, 3'
val = [int(v) for v in val.split(", ")]
result_int = val[1]*256**2 + val[2]*256*1 + val[3]
return result_int
เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, 128, 0, 0, 1 = 1, เบซเบผเบท 128, 0, 75, 108 = 19308.
เบเบฒเบเบฐเบฅเบฒเบเบกเบตเบฅเบฐเบซเบฑเบเบซเบผเบฑเบเบเบตเปเบกเบตเบเบฒเบเปเบเบตเปเบกเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เปเบฅเบฐเบกเบฑเบเบเบฑเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเปเบเบตเปเบเบตเป
เบกเบตเบเบฒเบเบเบฝเบเบเบฝเบเบเปเปเบกเบนเบเบเบฒเบเบเบฒเบเบฐเบฅเบฒเบเบเบฒเบเบเบปเบเบชเบญเบ, เบกเบฑเบเปเบเปเบเบทเบเปเบเบตเบเปเบเบตเบเบงเปเบฒเบงเบฑเบเบเบธ DATETIME เบเบฐเบเบญเบเบเปเบงเบ 5 เปเบเบเปเปเบฅเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเปเบงเบ 153 (เบชเปเบงเบเบซเบผเบฒเบเบญเบฒเบเบเบฐเบเบตเปเปเบซเปเปเบซเบฑเบเปเบฅเบเบฐเบเบฐเบเปเบฒเบเบต). เบเบฑเบเบเบฑเปเบเปเบเปเบเปเบงเบ DATTIME เปเบกเปเบ '1000-01-01' เปเบเบดเบ 9999-12-31', เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบดเบเบงเปเบฒเบเปเบฒเบเบงเบเบเบญเบ bytes เบญเบฒเบเบเบฐเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเปเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบญเบ, เบเปเปเบกเบนเบเบซเบผเบธเบเบฅเบปเบเปเบเปเบฅเบเบฐเปเบงเบฅเบฒเบเบฒเบ 2016 เบซเบฒ 2019, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเบกเบกเบธเบ เบงเปเบฒ 5 bytes เบเบฝเบเบเป.
เปเบเบทเปเบญเบเปเบฒเบเบปเบเปเบงเบฅเบฒเบเบตเปเบเปเปเบกเบตเบงเบดเบเบฒเบเบต, เบซเบเปเบฒเบเบตเปเบเปเปเปเบเบเบตเปเบเบทเบเบเบฝเบ. เบชเบฐเบเบฃเบดเบ:
day_ = lambda x: x % 64 // 2 # {x,x,X,x,x }
def hour_(x1, x2): # {x,x,X1,X2,x}
if x1 % 2 == 0:
return x2 // 16
elif x1 % 2 == 1:
return x2 // 16 + 16
else:
raise ValueError
min_ = lambda x1, x2: (x1 % 16) * 4 + (x2 // 64) # {x,x,x,X1,X2}
เบกเบฑเบเบเปเปเบชเบฒเบกเบฒเบเบเบฝเบเบซเบเปเบฒเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบชเปเบฒเบฅเบฑเบเบเบตเปเบฅเบฐเปเบเบทเบญเบ, เบเบฑเปเบเบเบฑเปเบเบเปเบญเบเบเปเบญเบ hack เบกเบฑเบ. เบชเบฐเบเบฃเบดเบ:
ym_list = {'2016, 1': '153, 152, 64', '2016, 2': '153, 152, 128',
'2016, 3': '153, 152, 192', '2016, 4': '153, 153, 0',
'2016, 5': '153, 153, 64', '2016, 6': '153, 153, 128',
'2016, 7': '153, 153, 192', '2016, 8': '153, 154, 0',
'2016, 9': '153, 154, 64', '2016, 10': '153, 154, 128',
'2016, 11': '153, 154, 192', '2016, 12': '153, 155, 0',
'2017, 1': '153, 155, 128', '2017, 2': '153, 155, 192',
'2017, 3': '153, 156, 0', '2017, 4': '153, 156, 64',
'2017, 5': '153, 156, 128', '2017, 6': '153, 156, 192',
'2017, 7': '153, 157, 0', '2017, 8': '153, 157, 64',
'2017, 9': '153, 157, 128', '2017, 10': '153, 157, 192',
'2017, 11': '153, 158, 0', '2017, 12': '153, 158, 64',
'2018, 1': '153, 158, 192', '2018, 2': '153, 159, 0',
'2018, 3': '153, 159, 64', '2018, 4': '153, 159, 128',
'2018, 5': '153, 159, 192', '2018, 6': '153, 160, 0',
'2018, 7': '153, 160, 64', '2018, 8': '153, 160, 128',
'2018, 9': '153, 160, 192', '2018, 10': '153, 161, 0',
'2018, 11': '153, 161, 64', '2018, 12': '153, 161, 128',
'2019, 1': '153, 162, 0', '2019, 2': '153, 162, 64',
'2019, 3': '153, 162, 128', '2019, 4': '153, 162, 192',
'2019, 5': '153, 163, 0', '2019, 6': '153, 163, 64',
'2019, 7': '153, 163, 128', '2019, 8': '153, 163, 192',
'2019, 9': '153, 164, 0', '2019, 10': '153, 164, 64',
'2019, 11': '153, 164, 128', '2019, 12': '153, 164, 192',
'2020, 1': '153, 165, 64', '2020, 2': '153, 165, 128',
'2020, 3': '153, 165, 192','2020, 4': '153, 166, 0',
'2020, 5': '153, 166, 64', '2020, 6': '153, 1, 128',
'2020, 7': '153, 166, 192', '2020, 8': '153, 167, 0',
'2020, 9': '153, 167, 64','2020, 10': '153, 167, 128',
'2020, 11': '153, 167, 192', '2020, 12': '153, 168, 0'}
def year_month(x1, x2): # {x,X,X,x,x }
for key, value in ym_list.items():
key = [int(k) for k in key.replace("'", "").split(", ")]
value = [int(v) for v in value.split(", ")]
if x1 == value[1] and x2 // 64 == value[2] // 64:
return key
return 0, 0
เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเปเบเปโเปเบเบงเปโเบฒโเบเปเบฒโเบซเบฒเบโเบงเปเบฒโเบเปเบฒเบโเปเบเปโเปเบงโเบฅเบฒ n เบเปเบฒโเบเบงเบโเบเบญเบโเบเบตเปโเปเบเปโเปเบงโเบฅเบฒโ, เบเบงเบฒเบกโเปเบเบปเปเบฒโเปเบโเบเบดเบโเบเบตเปโเบชเบฒโเบกเบฒเบโเปเบเปโเปเบโเปเบเปโ.
เบเปเปเปเบ, เบเบฑเบเบเบฑเบเบเบตเปเบชเบปเปเบเบเบทเบเบงเบฑเบเบเบธเบงเบฑเบเบเบตเบเบฒเบเบชเบฐเบเบฃเบดเบ. เบชเบฐเบเบฃเบดเบ:
def find_data_time(val:str):
val = [int(v) for v in val.split(", ")]
day = day_(val[2])
hour = hour_(val[2], val[3])
minutes = min_(val[3], val[4])
year, month = year_month(val[1], val[2])
return datetime(year, month, day, hour, minutes)
เบเบฑเบเบเบฒเบเปเบเบทเปเบญเบเบงเบเบเบปเบเบเปเบฒเบเบตเปเบเปเปเบฒเบเบฑเบเปเบฅเบทเปเบญเบเปเบเบฒเบ int, int, datetime, datetime , เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบตเปเปเบกเปเบเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเบเบฒเบ. เบเบดเปเบเปเบเบเบงเปเบฒเบเบฑเปเบ, เบฅเปเบฒเบเบฑเบเบเบฑเปเบเบเปเบฒเบงเบเปเปเปเบเปเบเบทเบเบเปเปเบฒเบชเบญเบเบเบฑเปเบเบเปเปเปเบเบง.
เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบปเบเบเบฐเบเบด, เบเบงเบเปเบฎเบปเบฒเบเบญเบเบซเบฒเบเปเปเบกเบนเบเบเบตเปเบเปเบฒเปเบเบฑเบ:
fined = re.findall(r'128, d*, d*, d*, 128, d*, d*, d*, 153, 1[6,5,4,3]d, d*, d*, d*, 153, 1[6,5,4,3]d, d*, d*, d*', int_array)
เบเบฐเบฅเบธเบเบฒเบฎเบฑเบเบเบฒเบเบงเปเบฒเปเบกเบทเปเบญเบเบปเปเบเบซเบฒเปเบเบเปเบเปเบเบฒเบเบชเบฐเปเบเบเบญเบญเบเบเบตเป, เบกเบฑเบเบเบฐเบเปเปเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเปเบฒ NULL เปเบเบเปเบญเบเบเปเปเบกเบนเบเบเบตเปเบเปเบญเบเบเบฒเบ, เปเบเปเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเปเบญเบเบเบตเปเบเปเปเบชเปเบฒเบเบฑเบ. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบเบเปเบฒเบเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบปเบเปเบซเบฑเบเบขเบนเปเปเบ loop เปเบเบฑเบ. เบชเบฐเบเบฃเบดเบ:
result = []
for val in fined:
pre_result = []
bd_int = re.findall(r"128, d*, d*, d*", val)
bd_date= re.findall(r"(153, 1[6,5,4,3]d, d*, d*, d*)", val)
for it in bd_int:
pre_result.append(find_int(bd_int[it]))
for bd in bd_date:
pre_result.append(find_data_time(bd))
result.append(pre_result)
เปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เบเบฑเปเบเปเบกเปเบเบเบฑเบเบซเบกเบปเบ, เบเปเปเบกเบนเบเบเบฒเบ array เบเบปเบเปเบเปเบฎเบฑเบเปเบกเปเบเบเปเปเบกเบนเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ. ###PS.###
เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบปเปเบฒเปเบเบงเปเบฒเบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเปเปเบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบปเบ, เปเบเปเปเบเบปเปเบฒเบซเบกเบฒเบเบเบปเปเบเบเปเบเบญเบเบเบปเบเบเบงเบฒเบกเปเบกเปเบเปเบเบทเปเบญเบเบฐเบเบธเปเบเปเบเบทเบญเบเปเบเบเบเบตเปเบเบฐเปเบเปเปเบเบเบฑเบเบซเบฒเบเบฑเบเบซเบกเบปเบเบเบญเบเบเปเบฒเบ. เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเบดเบโเบงเปเบฒโเบเบฒเบโเปเบเปโเปเบโเบเบตเปโเบเบทเบโเบเปเบญเบโเบเบตเปโเบชเบธเบโเปเบกเปเบโเบเบฒเบโเปเบฅเบตเปเบกโเบเบปเปเบโเบเบฒเบโเบชเบถเบโเบชเบฒโเบฅเบฐโเบซเบฑเบโเปเบซเบผเปเบโเบเบปเบงโเบเปเบฒเบโเปเบญเบโ
เปเบเบเบฒเบเบเปเบฅเบฐเบเบต, เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบงเบดเปเบเบฒเบฐเปเบเบฅเป, เบเปเบฒเบเบเบฐเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเปเบเบเบชเปเบฒเบเปเบเบเบเบฐเบกเบฒเบเปเบฅเบฐเบเบทเปเบเบเบนเบกเบฑเบเปเบเบเปเบเปเบซเบเบถเปเบเปเบเบงเบดเบเบตเบเบฒเบเบกเบฒเบเบเบฐเบเบฒเบเบเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเปเบฒเบเปเบเบดเบ. เบเบตเปเบเบฐเบเบทเบเบเปเบญเบเบซเบผเบฒเบ เปเบฅเบฐเปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบฑเบเบซเบฒเปเปเบญเบเบฅเบปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com