月度归档:2025年01月

mpy_edit 编辑文件

python文件编辑

import os


class mpy_edit(object):
    def __init__(self,file_name):
        self.file_name=file_name
        self.read_file(self.file_name)
    def read_file(self,file_name):
        if os.path.exists(file_name):
            self.size=os.path.getsize(file_name)
            self.f=open(file_name,"r")
            self.file_lines=self.f.readlines()
            self.all=len(self.file_lines)
            self.now=0
            self.f.close()
        else:
            return "NO FILE"
    def line_num(self,line_num):
        if self.all>line_num+1:
            self.now=line_num+1
            return self.file_lines[line_num]
        else:
            line_num=self.all-1
            self.now=self.all-1
            return self.file_lines[self.now]
        
    def read(self):
        return self.line_num(self.now)
    def edit_line(self,line_num,str_info):
        self.file_lines[line_num]=str_info
    def save(self,file_name=False):
        if not file_name:
            file_name=self.file_name
        nf=open(file_name,"w")
        for i in self.file_lines:
            nf.write(i)
        nf.close()

    
f=mpy_edit("ttt.txt")



print(f.line_num(14))

PHP处理word

替换块

$tmp->setValue(‘title’,$title);

大段复制

$tmp->cloneBlock(“block_1”,0,true,false,$info);
其中$info中的键是模板中需要替换的名称,值是替换后的值

举例子 $info

举例子 $info
$info=array(
            array("title"=>"一、的萨芬莫斯科电脑麦克风莫斯科的","study_body"=>"的萨芬莫斯科电脑麦克风莫斯科的的萨芬莫斯科电脑麦克风莫斯科的","main_time"=>"9:10-9:40"),
            array("title"=>"二、是多少dasdasda斯科的","study_body"=>"是多少dasdasda斯科的是多少dasdasda斯科的克风莫斯科的","main_time"=>"9:40-10:10"),
        );

#模板中block_1 

${block_1}
${title}
参加对象:${study_body}
时间:${main_time}

${/block_1}

删除块

$templateProcessor->deleteBlock(‘block_name’);

require_once 'vendor/autoload.php';
 //如果是Thinkphp 在目录下已经使用composer安装了phpoffice 的phpword 可以不适应这个

use PhpOffice\PhpWord\TemplateProcessor;

// 加载模板文件
$templateProcessor = new TemplateProcessor('path/to/your/template.docx');

// 删除块 谨慎使用,可以用空值去替换
$templateProcessor->deleteBlock('block_name');

// 保存修改后的文档
$templateProcessor->saveAs('path/to/your/new/document.docx');

保持文件信息

$tmp->saveAs($save_name);

删除大坑:

1.在大段block中 若传入空值则不进行替换,且该块不显示。

2.若删除块可能会导致下面的块连同删除。

#模板

${block_1}
${title}
参加对象:${study_body}
时间:${main_time}

${/block_1}
${block_2}
${title}
出席:${cx_name}

${/block_2}

#PHP block_1 无内容,block_2有内容 可以替换:
(其中传入$block_1为array空,$block_1=array();即可)

$tmp->cloneBlock("block_1",0,true,false,$block_1);
$tmp->cloneBlock("block_2",0,true,false,$block_2);

#错误调用
$tmp->deleteBlock("block_1");
$tmp->cloneBlock("block_2",0,true,false,$block_2);

#可能会导致block_2连同删除,巨坑!!!!!

CH9350 设计

默认下位机(即外接USB设备收到信号,通过UART发送给电脑)SEL高电平

电源设计


USB电源外部5V 供电,以及外界USB供电也如此。

供电:

5V 需要加0.1uF

3v3 需要0.1uF

LED指示灯设计

LED0 默认高点平 (下位机),LED1 LED2 默认高电平

USB连接器设计

外接USB,为 第一个USB为 DM(D- 靠近电源的那个) DP(D+);HM HP。

CH9350USBCH9350 指示灯
DMD- LED1 引脚
DPD+
HMD-LED2 引脚
HPD+

可以省略的设计:波特兰选择,模式选择

S0 S1 模式可以不接
BUAD0 BUAD1 波特率选择可以不接


设计范例


相关文档

PHP开发相关小结 关于时间

1.Mysql中的Time格式 在PHP下使用(加时间45分钟)

这个是PHP全局类 ,如果使用Thinkphp 可能会转到tp上需要加上\

 $dateTime = new \DateTime($main_time);

// 假设从 MySQL 获取的时间字符串
$timeString = '12:34:56';

// 创建 DateTime 对象
$dateTime = new \DateTime($timeString);

// 在时间上加上 45 分钟
$dateTime->modify('+45 minutes');

// 获取修改后的格式化时间字符串
$newTimeString = $dateTime->format('H:i:s');

echo $newTimeString; // 输出: 13:19:56



//针对00:45:00 这类时间

$timeString = '00:45:00';

// 创建 DateInterval 对象
$interval = new \DateInterval('PT' . $timeString);

// 创建 DateTime 对象
$dateTime = new \DateTime('now');

// 在时间上加上时间间隔
$dateTime->add($interval);
//函数
function ctm($pre_time,$mins){
    $dateTime = new \DateTime($pre_time);
    $dateTime->modify('+'.$mins." minutes");
    return $dateTime;
}

var_dump($dateTime->format('H:i:s'));
//显示时间

2.JS上AJAX提交数据,若其中直接提交数组,PHP Thinkphp下可以直接抓取到array数组,可以使用json_encode转化为json保持到mysql,若js直击提交JSON化字符串 ,可能在转换上有问题。

//JS下代码 
$.ajax({
            url:"/abc/acc",
            type:'post',
            data:{
                        book:["sss","zzz","ffff"],
                        age:12      
                        
            },
            success:function(data){
                console.log(data);
            }

        })
//Thinkphp下
$book=$this->request->post('book');
var_dump($book);
$json_book=json_encode($book);

Thinkphp6 软删除

<?php
namespace app\portal\model;

use think\facade\Db;
use think\Model;
\\在模型引入
use think\model\concern\SoftDelete;

class CopTopicsModel extends Model
{
  
    \\模型中使用
    use SoftDelete;
    protected $name = 'cop_topics';
    protected $autoWriteTimestamp=true;
    protected $deleteTime="delete_time";
    
    public function user(){
        return $this->belongsTo(User::class,"uid","id");
    }
}




软删除时候delete_time默认是为NULL

使用Db::name(“xxxx”)->where($where)->delete()这样是不使用软删除,必须使用模型实例化才可以。