查看: 136  |  回复: 1
元器件过多的bom单处理 1404个led灯
我是老王
1
主题
1
回复
发表于2024-03-28 17:02:20 | ip属地:江苏 | 只看该作者
1# 电梯直达

提交bom单的时候,单个单元格不能超过200个字符

这是处理程序。验证可用

#include <stdio.h>

#include <stdlib.h>

#include <string.h>


int main() {

   FILE *fp;

   int i, group_start, no = 3;

   char designators[4096]; // 分配足够大的空间以容纳多个设计符号


   // 尝试打开或创建文件

   fp = fopen("output.csv", "w");

   if (fp == NULL) {

       printf("无法打开文件\n");

       return 1;

   }


   // 写入标题行

   fprintf(fp, "No.,Quantity,Comment,Designator,Footprint,Value,Manufacturer Part,Manufacturer,Supplier Part,Supplier,LCSC Stock,JLCPCB Stock\n");


   // 生成设计符号并写入

   for (group_start = 1; group_start <= 1404;) {

       // 重置设计符号字符串

       designators[0] = '\0';

       int current_length = 0; // 当前设计符号字符串的长度

       int quantity = 0; // 记录这一组的元件数量


       for (i = group_start; current_length < 200 && i <= 1404; i++) {

           char buffer[12]; // 临时字符串,足够存储 "U" + 数字


           // 构建设计符号

           snprintf(buffer, sizeof(buffer), "U%d", i);


           // 检查是否会超出长度限制

           if (current_length + strlen(buffer) + (current_length > 0 ? 1 : 0) <= 200) { // +1 为了之后可能的逗号分隔符

               if (current_length > 0) {

                   strcat(designators, ","); // 添加逗号作为设计符号之间的分隔符

               }

               strcat(designators, buffer);

               current_length += strlen(buffer) + (current_length > 0 ? 1 : 0); // 如果已经添加了设计符号,计算逗号的长度

               group_start = i + 1; // 更新下一组的起始位置

               quantity++; // 更新这一组的元件数量

           } else {

               break; // 超出长度限制,结束这一组

           }

       }


       // 写入一行数据,注意这里使用了逗号而不是制表符作为字段分隔符,因为我们现在正在创建CSV文件

fprintf(fp, "%d,%d,XL-1010RGBC-WS2812B,\"%s\",LED-SMD_4P-L1.0-W1.0-TL_XL-1010RGBC-WS2812B,,XL-1010RGBC-WS2812B,XINGLIGHT(成兴光),C5349953,LCSC,12279,111174\n", no++, quantity, designators);

   }


   // 关闭文件

   fclose(fp);


   printf("文件写入完成。\n");


   return 0;

}



我是老王
1
主题
1
回复
发表于2024-03-28 17:02:56   |  ip属地:江苏  |  只看该作者
2#
我自己写的,用AI辅助编程。

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部