Довольно простое решение в C++:
#include <iostream.h>
char*a[]={"a partridge in a pear tree.\n","two turtle doves, and","three french hens,","four calling birds,","five gold rings,","six geese a-laying,","seven swans a-swimming,","eight maids a-milking,","nine ladies dancing,","ten lords a-leaping,","eleven pipers piping,","twelve drummers drumming,"};
char*b[]={"first","second","third","fourth","fifth","sixth","seventh","eighth","nineth","tenth","eleventh", "twelfth"};
int main(){for(int i=0;i<12;i++){std::cout<<"On the "<<b[i]<<" day of Christmas my true love gave to me, \n";for(int j=i;j>=0;j--)std::cout<<a[j]<<" \n";}}
595 символов, хотя это могло быть уменьшено до 513 символов, если Вы позволяете "1-й, 2-й, 3-й" и т.д. нотация, которую некоторые использовали.
Не все модемы поддерживают идентификатор вызывающего абонента. А для тех, кто это делает, реализация варьируется в зависимости от производителя.
Идентификатор вызывающего абонента передается через последовательные данные, поэтому вам придется использовать библиотеку TAPI (или HyperTerminal Windows для проверки). Номер идентификатора вызывающего абонента обычно появляется между первым и вторым звонком.
Вам нужно будет подать команду на модем, чтобы активировать идентификатор вызывающего абонента. Обычно:
AT # CID = 1
(илиAT + VCID = 1
)OK
Проверьте документацию на свой модем.
Когда поступает вызов, модем получит строку вызова. Обычно:
ЗВОНОК
Затем приходит текст идентификатора вызывающего абонента. Если я правильно помню, он будет в форме:
NMBR = XXXXXXXXXX
[Ищу ссылку. Я отправлю ссылку, когда найду ее]
ОБНОВЛЕНИЕ : А, нашел. На этой странице представлены команды и строки подключения для различных модемов:
Как проверить модем на поддержку идентификатора вызывающего абонента
Это возможно, но есть некоторые моменты, на которые следует обратить внимание:
serialPort1.Open (); serialPort1.WriteLine ("AT # cid = 1" + System.Environment.NewLine); // где serialPort1 - последовательный порт для более подробной информации см. следующую ссылку: http://www.itworld2.com/frmsCsharp.aspx