小编JXI*_*ITC的帖子

如何理解IMAP电子邮件文本中的等号'='符号?

我目前正在使用Python imaplib来处理电子邮件文本.

我使用fetch命令从GMail服务器获取原始数据电子邮件.但是,我发现有一件事很棘手 - 等号'='.它不是正常的等号,而是一个特殊的符号.

例如:

  1. '='有时用作文本行末尾的连字符标记:

    Depending upon your module selections, course lecturers may also contact yo=
    u with preparatory work over the next few weeks. It would be wise to start =
    reviewing the preparatory reading lists provided on the module syllabi now =
    
    Run Code Online (Sandbox Code Playgroud)
  2. 有时,它充当类似'%'的转义标记,例如:

    a=20b实际上实际上a<SPACE>b
    =46rom hereFrom here

我对这种奇怪的符号感到困惑.我认为必须有一个指导来处理这个,因为GMail可以在他们的应用程序中正确处理这样的事情.

我发现这与HTML编码有关,就像'%'将被编码一样.但问题是,我从IMAP响应得到的只是一个包含这个'='符号的字符串.我该怎么处理?使用正则表达式?

html python imap imaplib gmail-imap

22
推荐指数
1
解决办法
6370
查看次数

找到这个二元递推方程的公式?f(m,n)= f(m-1,n)+ f(m,n-1)

对不起大家!我的错!谢谢你的提醒,我发现f(0,k)== f(k,0)== 1.这个问题是关于如何计算从网格(0,0)到(m,n)的最短路径数).

我现在必须解决以下等式,确切地找出f(m,n)等于什么.

1) f(m,n) = 0 : when (m,n) = (0,0)
**2) f(m,n) = 1 : when f(0,k) or f(k,0)**
3) f(m,n) = f(m-1,n) + f(m,n-1) : when else
Run Code Online (Sandbox Code Playgroud)

例如:

1) f(0,0) = 0; 
2) f(0,1) = 1; f(2,0) = 1; 
3) f(2,1) = f(1,1) + f(2,0) = f(0, 1) + f(1, 0) + f(2, 0) = 1 + 1 + 1 = 3  
Run Code Online (Sandbox Code Playgroud)

我记得有一种标准的方法可以解决这种二进制递归方程,正如我几年前在算法类中学到的那样,但我现在还记不起来了.

任何人都可以提供任何暗示吗?或关键字如何找到答案?

algorithm math recurrence

10
推荐指数
1
解决办法
1197
查看次数

.Net Speech.Synthesizer中的内存泄漏?

我在申请中发现了连续泄漏.在使用内存分析器进行检查后,我发现该课程是Microsoft Speech.Synthesizer中的一些对象

所以我建立了一个玩具项目来验证这个假设:

//在Speech.Synthesizer对象中显示内存泄漏的玩具示例

static void Main(string[] args)
{
    string text = "hello world. This is a long sentence";
    PromptBuilder pb = new PromptBuilder();
    pb.StartStyle(new PromptStyle(PromptRate.ExtraFast));
    pb.AppendText(text);
    pb.EndStyle();
    SpeechSynthesizer tts = new SpeechSynthesizer();

while (true)
{
    //SpeechSynthesizer tts = new SpeechSynthesizer();
    Console.WriteLine("Speaking..."); 
    tts.Speak(pb);

    //Print private working set sieze
    Console.WriteLine("Memory: {0} KB\n", (Process.GetCurrentProcess().PrivateMemorySize64 / 1024).ToString("0"));

    //tts.Dispose();    //also this doesn't work as well
    //tts = null;

    GC.Collect();   //a little help, but still leaks
}
}
Run Code Online (Sandbox Code Playgroud)

结果实际证实内存泄漏来自Speech.Synthesizer

Speaking...
Run Code Online (Sandbox Code Playgroud)

内存:42184 KB

说到......内存:42312 KB

说到......内存:42440 …

.net c# memory-leaks sapi speech-synthesis

8
推荐指数
1
解决办法
2577
查看次数

如何在WPF UI中使<UIElement>可交互或可点击

这是我使用WPF设计UI的第一天.我查找了Flow Document的 MSDN官方文档,发现我可以在RichTextBox中放置一个UI控件.我确实放了一个按钮,但发现它不能互动 - 我不能点击它,因为它是灰色的.我也尝试了其他控件,它们都显示正常但只是不支持交互.即使是超链接也不起作用.

我通过互联网搜索,有史以来最接近的问题是关于如何使内部超链接可点击:类似的问题:C#WPF文本链接

我做了同样的事情,但没有奏效!所有组件都显示良好,但无法单击.

这是我的XAML代码:

        <RichTextBox Grid.Row="1" Margin="14.007,31.067,22.011,46.305" Name="rtxtRslt" BorderBrush="White" >
        <FlowDocument>
            <Section FontSize="15">
                <Paragraph>
                    <Bold>Click on this:</Bold>
                    <Italic><Hyperlink  NavigateUri="http://stackoverflow.com">http://www.jxitc.info</Hyperlink></Italic>

                </Paragraph>

                <BlockUIContainer>
                    <Button Click="Button_Click">Also Click On This</Button>
                </BlockUIContainer>
            </Section>
        </FlowDocument>
    </RichTextBox>
Run Code Online (Sandbox Code Playgroud)

任何人都可以给我一些建议:1.是否有可能使其可点击2.如果是,如果我忘记设置RichTextBox控件的任何/什么属性?

c# richtextbox wpf-controls flowdocument uielement

5
推荐指数
1
解决办法
2361
查看次数

C# SAPI 可以讲 SSML 字符串吗?

我在我的 C# WPF 项目中实现了 TTS。

以前,我使用 System.Speech.Synthesis 命名空间中的 TTS 来说话。说话内容为SSML格式(语音合成器标记语言,支持自定义语速、语音、强调)如下:

<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="en-US"><prosody rate="x-fast">hello world. This is a long sentence speaking very fast!</prosody></speak>
Run Code Online (Sandbox Code Playgroud)

但不幸的是,System.Speech.Synthesis TTS 存在内存泄漏问题,正如我在问题Memory Leak in .Net Speech.Synthesizer?中提到的那样。

所以我决定使用SAPI COM组件。我可以轻松地让SAPI讲纯文本内容。但后来我继续尝试让它说出 SSML 字符串,但失败了。代码如下:

//Initialize TTS instance

SpeechLib.SpVoiceClass tts = new SpeechLib.SpVoiceClass();

//Generate SSML string

string textToSpeak = "hello world speak Extra Fast.";
PromptBuilder pb = new PromptBuilder();
pb.StartStyle(new PromptStyle(PromptRate.ExtraFast));
pb.AppendText(textToSpeak);
pb.EndStyle();

ssmlString = pb.ToXml();    //ssmlString = @"<speak version=""1.0"" .... 

//Speak!

tts.Speak(ssmlString, SpeechLib.SpeechVoiceSpeakFlags.SVSFParseSsml);
Run Code Online (Sandbox Code Playgroud)

代码的重要部分是

tts.Speak(ssmlString, SpeechLib.SpeechVoiceSpeakFlags.SVSFParseSsml);
Run Code Online (Sandbox Code Playgroud)

它使用 …

c# speech sapi text-to-speech ssml

5
推荐指数
1
解决办法
2763
查看次数

收缩std :: vector的大小以适应其实际数据以节省内存使用量?vec.swap()在MSVC中不起作用?

实际上我的程序中有数百万个矢量对象.对于每个向量的默认值,系统将分配比实际需要更多的空间,因为这些向量在完成加载后是只读的.

所以我想缩小他们节省内存的能力.一种典型的方法是使用此问题中描述的vector.swap()方法:

 std::vector<T> tmp(v);    // copy elements into a temporary vector
           v.swap(tmp);              // swap internal vector data
Run Code Online (Sandbox Code Playgroud)

我试过这段代码,但发现.swap()操作实际上并没有降低内存成本.(我查看了任务管理器中的私有工作集大小以获取进程的内存使用情况)

这是为什么? 更新" 我正在使用VS 2008,并且我在运行时添加了一些行来输出当前容量.如下面的代码及其输出所示,交换后vec.capacity确实缩小到10,但这并未反映在任务中经理.

或者就像@Adam Rosenfield所说的那样,这种变化并没有将自由空间归还给OS?或者我不应该使用任务管理器来查找其内存使用情况?我希望这个swap()操作可以产生与delete pointer_to_a_big_vec直接释放内存相同的效果.

我的测试样本在这里:

void vecMemoryTest()
{
  vector<int> vec;

  //make it big!
  for(int i = 0; i <= 100000; i++){vec.push_back(i);}
  for(int i = 0; i <= 100000; i++){vec.push_back(i);}

  cout << "Before .resize() : " << vec.capacity() << endl;

  //OK now I only need the first 10 elements
  vec.resize(10); …
Run Code Online (Sandbox Code Playgroud)

c++ memory vector

4
推荐指数
1
解决办法
1833
查看次数

string("; P")更大还是字符串("-_-")更大?

排序文本文件时,我发现很困惑.不同的算法/应用产生不同的结果,例如,比较两个字符串 str1=";P"str2="-_-"

仅供您参考,这里给出了这些字符串中每个字符的ASCII:

char(';') = 59;   char('P') = 80;
char('-') = 45;   char('_') = 95;
Run Code Online (Sandbox Code Playgroud)

所以我尝试了不同的方法来确定哪个字符串更大,这是我的结果:

  1. 在Microsoft Office Excel 排序命令中:

    "; P"<" - _ - "

  2. C++ std :: string :: compare(string&str2),即 str1.compare(str2)

    "; P">" - _-"

  3. C#string.CompareTo(),即 str1.CompareTo(str2)

    "; P"<" - _ - "

  4. C#string.CompareOrdinal(),即 CompareOrdinal(w1, w2)

    "; P">" - _-"

如图所示,结果多种多样!实际上我的直观结果应该等于方法2和4,因为ASCII(';')= 59大于ASCII(' - ')= 45.

所以我不知道为什么Excel和C#string.CompareTo()给出了相反的答案.注意到在C#中第二个比较函数名为string.CompareOrdinal().这是否意味着默认的C#string.CompareTo()函数不是"Ordinal"?

任何人都能解释这种不一致吗?

也许任何人都可以在CultureInfo = {en-US}中解释,为什么它告诉; P> -_-?什么是潜在的动机或原则?而且我听说过不同文化信息中的不同双重乘法.这是一种文化冲击..!

c# c++ char

1
推荐指数
1
解决办法
435
查看次数

tinyXML lib无法正确读取'&'

我有一个XML文件,其中包含以下几行:

<rule pat="&&&&&&&&&&&&&&&(?<B>B) ?(?<AND>&) ?(?<E>E)">
Run Code Online (Sandbox Code Playgroud)

我在C++中使用TinyXML lib来解析这个XML文件,但是当我尝试获得这些行的'pat'属性时,TinyXML就会忽略任何出现的字符&.也就是说,TinyXML读取的结果变成了:

(?<B>B) ?(?<AND>) ?(?<E>E)
Run Code Online (Sandbox Code Playgroud)

全都&失踪了!

这个char是我的正则表达式模式的一部分,所以这将导致我的程序中的进一步错误.

有谁知道为什么这个角色&如此特别而且TinyXML无法阅读?即使是一个独立的人&也会被解雇?

c++ xml tinyxml

0
推荐指数
1
解决办法
519
查看次数