delphi如何按固定的分隔符来分割字符串,并且把分割出来的字符串放到数组中?具体的代码如何实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi如何按固定的分隔符来分割字符串,并且把分割出来的字符串放到数组中?具体的代码如何实现?相关的知识,希望对你有一定的参考价值。

固定的分隔符 就是日期2011-3-17 的 - 来分割字符串,并且把分割出来的字符串放到数组中?具体的代码如何实现?
谢谢: chuxue1342

请问我想取得分割出来的日期是不是直接可以 temp[2]呢?

谢谢 kysxiaoh 我试试看

请问我怎么计算时间差呢?和系统的当前时间来计算时间差 该怎么写呢?

参考技术A 我用C#的,里面有split,我相信delphi里面也有类似的函数:
string str='2011-3-17';
string[] listStr=str.split('-');

-------------------------------------
我找了一下,不知道是delphi里面的系统函数还是人家写,你可以拿去用吧:
//根据字符串,拆分字符串,相当于vb中的split函数
function SplitString(const Source,ch:string):TStringList;
var
temp:String;
i:Integer;
begin
Result:=TStringList.Create;
//如果是空自符串则返回空列表
if Source=''''''''
then exit;
temp:=Source;
i:=pos(ch,Source);
while i<>0 do
begin
Result.add(copy(temp,0,i-1));
Delete(temp,1,i);
i:=pos(ch,temp);
end;
Result.add(temp);
end;

------------------------------------
日期不知道你是取的是哪一部分,应该按顺序来:
temp[0]:2011
temp[1]:3
temp[2]:17
参考技术B Delphi的Tstringlist直接就可以拿来分割了

var
list : TStringlist;
begin
list := TStringlist.Create;
list.Delimiter := '-';
list.DelimitedText := '1987-11-16';

showmessage(list.Strings[0]); //1987
showmessage(list.Strings[1]); //11
showmessage(list.Strings[2]); //16

var
myTime : TDate;
i : integer;
begin
myTime := strToDate('2011-3-17');
i := round((now - mytime)*24*3600); //从myTime到现在经历的秒数 ;本回答被提问者采纳

如何通过静音部分分割视频或音频

【中文标题】如何通过静音部分分割视频或音频【英文标题】:How to split video or audio by silent parts 【发布时间】:2016-07-04 14:35:50 【问题描述】:

我需要自动按单词分割演讲视频,所以每个单词都是一个单独的视频文件。你知道有什么方法可以做到这一点吗?

我的计划是检测静音部分并将它们用作单词分隔符。但我没有找到任何工具来执行此操作,并且看起来 ffmpeg 不是正确的工具。

【问题讨论】:

【参考方案1】:

你可以先用ffmpeg来detect intervals of silence,像这样

ffmpeg -i "input.mov" -af silencedetect=noise=-30dB:d=0.5 -f null - 2> vol.txt

这将产生如下读数的控制台输出:

[silencedetect @ 00000000004b02c0] silence_start: -0.0306667
[silencedetect @ 00000000004b02c0] silence_end: 1.42767 | silence_duration: 1.45833
[silencedetect @ 00000000004b02c0] silence_start: 2.21583
[silencedetect @ 00000000004b02c0] silence_end: 2.7585 | silence_duration: 0.542667
[silencedetect @ 00000000004b02c0] silence_start: 3.1315
[silencedetect @ 00000000004b02c0] silence_end: 5.21833 | silence_duration: 2.08683
[silencedetect @ 00000000004b02c0] silence_start: 5.3895
[silencedetect @ 00000000004b02c0] silence_end: 7.84883 | silence_duration: 2.45933
[silencedetect @ 00000000004b02c0] silence_start: 8.05117
[silencedetect @ 00000000004b02c0] silence_end: 10.0953 | silence_duration: 2.04417
[silencedetect @ 00000000004b02c0] silence_start: 10.4798
[silencedetect @ 00000000004b02c0] silence_end: 12.4387 | silence_duration: 1.95883
[silencedetect @ 00000000004b02c0] silence_start: 12.6837
[silencedetect @ 00000000004b02c0] silence_end: 14.5572 | silence_duration: 1.8735
[silencedetect @ 00000000004b02c0] silence_start: 14.9843
[silencedetect @ 00000000004b02c0] silence_end: 16.5165 | silence_duration: 1.53217

然后您生成命令以从每个静音结束拆分到下一个静音开始。您可能想要添加一些句柄,例如 250 毫秒,因此音频的持续时间将增加 250 毫秒 * 2。

ffmpeg -ss <silence_end - 0.25> -t <next_silence_start - silence_end + 2 * 0.25> -i input.mov word-N.mov

(我已跳过指定音频/视频参数)

您需要编写一个脚本来抓取控制台日志并生成带有时间码的结构化(可能是 CSV)文件 - 每行一对:silence_end 和下一个 quiet_start。然后是另一个脚本来生成带有每对数字的命令。

【讨论】:

作为oneliner:ffmpeg -i input.mkv -filter_complex "[0:a]silencedetect=n=-90dB:d=0.3[outa]" -map [outa] -f s16le -y /dev/null |&amp; F='-aq 70 -v warning' perl -ne 'INIT $ss=0; $se=0; if (/silence_start: (\S+)/) $ss=$1; $ctr+=1; printf "ffmpeg -nostdin -i input.mkv -ss %f -t %f $ENVF -y %03d.mkv\n", $se, ($ss-$se), $ctr; if (/silence_end: (\S+)/) $se=$1; END printf "ffmpeg -nostdin -i input.mkv -ss %f $ENVF -y %03d.mkv\n", $se, $ctr+1; ' | bash -x @JohnSmith,Mac 默认有旧的(4 之前的)bash。将|&amp; 替换为2&gt;&amp;1 | @giacecco 要跳过重新编码,请将 -c copy 添加到最后一个 ffmpeg 命令行。其他效果需要更复杂的脚本。也许有一天我会实现它并作为答案发布...... 如何调整噪声参数,noise=-30dB:d=0.5 ?我尝试了不同的值,但我没有得到 silent_start silent_end 对,也就是说,有时缺少一个。 @Vi。看来你回答这个问题可以赚100分***.com/questions/55057778/…请看一下。

以上是关于delphi如何按固定的分隔符来分割字符串,并且把分割出来的字符串放到数组中?具体的代码如何实现?的主要内容,如果未能解决你的问题,请参考以下文章

delphi字符串分割和比大小

如何实现Oracle中字符串分隔

sql 如何以逗号为分隔符分割一个字段的值

一日一技:一次性把字符串用多个分隔符分割

如何通过静音部分分割视频或音频

delphi 自定义公式