Converter um inteiro numa string em C++ (C++11 ISO)

O número 32 é convertido numa string, que depois é concatenado ao texto “string: ” para ser mostrada.

#include
using namespace std;

int main()
{
    int n=32;
    string s=to_string(n);
    cout << "string: " + s  << endl;
    return 0;
}

Anúncios

Converter uma string num inteiro em C++ (C++11 ISO)

O número 32 está armazenado numa string, é convertido num inteiro e é mostrado incrementado.

#include
using namespace std;

int main()
{
    string s="32";
    int n=stoi(s);
    cout << n + 1 << endl;

    return 0;
}

Não esquecer das opções do compilador …

Mais info: std:: sto@

Como inverter uma palavra (string) em C++?

Ler uma palavra e apresentar a sua inversa pode ser uma tarefa relativamente simples, desde que cada um decida não complicar.

Vamos ver um primeiro exemplo:

#include 
using namespace std;
int main()
{
    string s, nova="";
    cin >> s;
    for(int i=0; i<s.length(); i++)
        nova= s[i] + nova;
    cout << nova << endl;
    return 0;
}

Neste caso optamos por criar uma nova string contendo a palavra invertida. Simples e rápido!

Vamos agora considerar outro exemplo, partindo do princípio que desejamos fazer a troca das letras dentro da própria string. Por exemplo:

#include 
#include 
using namespace std;
int main()
{
    string s;
    cin >> s;
    int p = s.length() - 1;
    for(int i=0; i<s.length()/2; i++)
    {
        char t = s[i];
        s[i] = s[p];
        s[p] = t;
        p--;
    }
    cout << s << endl;
    return 0;
}

Ou até mesmo partindo do princípio que uma string não é mais do que um array de carateres, recorrendo à função reverse e tratando de tudo numa única linha:

#include 
#include 
using namespace std;
int main()
{
    string s;
    cin >> s;
    reverse(s.begin(),s.end());
    cout << s << endl;
    return 0;
}

Claro que tudo isto já foi mais do que dito All over the Internet!

Então porque razão publico?

Trata-se apenas de uma desabafo. Alguém me entregou programas muito complexos para tentar resolver esta tarefa tão simples.


 

Como obter o próximo id livre de uma tabela MySQL (C# WPF)

Mais uma dica que pode ser útil … mas apenas em monoposto!

Antes de inserir um novo registo, sem recurso ao AUTO_INCREMENT, podemos desejar saber o valor do campo chave, que será obtido incrementando o id de valor mais alto.

Deixo aqui uma forma de o conseguir que, embora pouco sofisticada, faz o serviço.

#region Calcular o próximo id livre
private void mostarBtn_Click(object sender, RoutedEventArgs e)
{
    try
    {
        ligacaoBD.Open();
        string stm = "select max(idContacto) as x from contacto";
        MySqlCommand cmd = new MySqlCommand(stm, ligacaoBD);
        int id;
        Int32.TryParse(cmd.ExecuteScalar().ToString(), out id);
        id++;
        MessageBox.Show("O próximo id é " + id.ToString());
    }
    catch
    {
        MessageBox.Show("Erro!");
    }
        finally
    {
        ligacaoBD.Close();
    }

}
#endregion

Link para download da base de dados e código:

https://app.box.com/s/r1bqtvburr1dknn2455ntzenyadvs6ln

Como percorrer uma Datagrid e mostrar os dados linha a linha (C# WPF)

Neste exemplo vou utilizar uma Datagrid que é carregada a partir de uma tabela MySQL.

O efeito é este:

Quando o botão for pressionado, pretendo aceder a cada campo de cada registo, percorrendo as várias linhas de cima para baixo.

Para cada linha será exibida uma string correspondente à concatenação dos três campos.

No code-behind teremos:

...
private void mostarBtn_Click(object sender, RoutedEventArgs e)
{
    foreach (DataRowView row in dataGridContactos.Items)
    {
        string contacto = row.Row.ItemArray[0].ToString();
        string nome = row.Row.ItemArray[1].ToString();
        string idade = row.Row.ItemArray[2].ToString();
        string registo = contacto + " | " + nome + " | " + idade;
        MessageBox.Show(registo);
    }
}
...

Link para download da base de dados e código:

https://app.box.com/s/a0jezp8boau6tqjd3j6zsovd54jggseg

Utilizando controlos do Extended WPF Toolkit™ Community Edition

Por vezes os controlos padrão disponibilizados para criar a nossa aplicação WPF não correspondem integralmente às nossas necessidades.

Uma primeira alternativa consiste em criar controlos personalizados, o que pode ser uma tarefa complexa para os menos experientes.

A segunda, mais simples, consiste em recorrer a bibliotecas e ferramentas adicionais, como é o caso da que vamos utilizar aqui.

A título de exemplo, vamos supor que desejamos utilizar uma TextBox para ler matrículas de automóveis posteriores a 2007.

Continue reading “Utilizando controlos do Extended WPF Toolkit™ Community Edition”

Slideshow Manual usando C# e WPF

Este exemplo é muito simples e apenas me serviu para testar:

  • carregar imagens para um controlo Image que se encontram organizadas num ResouceDictionary;
  • Selecionar as imagens mediante a utilização de dois botões “anterior” e “seguinte“;
  • Associar uma ação ao botão central, no qual está a ser exibida a imagem, que será diferente dependendo da imagem selecionada.

Continue reading “Slideshow Manual usando C# e WPF”

WPF DropShadowEffect

Uma forma muito simples de aplicar uma sombra a um controlo consiste em utilizar o efeito “DropShadowEffect“.

Este, tal como o “BlurEffect“, vem pré-definido na Framework .NET, sendo muito simples a sua utilização.

<Grid HorizontalAlignment="Center" VerticalAlignment="Center" >
    <StackPanel Orientation="Vertical">
        <Label Content="Efeito Sombra (DropShadowEffect)" FontFamily="Cooper Black" FontSize="50" Foreground="#AA000000" HorizontalAlignment="Center" Margin="10">
            <Label.Effect>
                <DropShadowEffect/>
            </Label.Effect>
        </Label>
        <Button HorizontalAlignment="Center" VerticalAlignment="Center" Content="Botão Com Sombra" Foreground="#FF000000" FontFamily="Cooper Black" FontSize="40" Margin="10" Padding="10"  >
            <Button.Effect>
                <DropShadowEffect />
            </Button.Effect>
        </Button>
    </StackPanel>
</Grid>

Recorrendo ao Blend podemos ter ainda mais efeitos disponíveis, mas estaremos a aumentar a complexidade.

Boas formatações!

Fonte: https://wpf.2000things.com/tag/dropshadoweffect/

WPF Yes/No MessageBox – “O Trump tem um penteado estranho?”

O exemplo seguinte demonstra como usar uma MessageBox para confirmar um determinada operação, como por exemplo, decidir se vamos eliminar definitivamente um registo numa base de dados, ou não.

Neste caso vamos apenas questionar o estilo capilar do mais recente Presidente dos USA.

Ao pressionar o botão surge a pergunta:

Se responder sim faz algo … neste caso chama outra MessageBox:

Caso contrário, também merecemos uma resposta … neste caso:

O código é muito simples:

using System.Windows;

namespace yesOrNoWpfApplication
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Tem a certeza?", "O Trump tem um penteado estranho.", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                MessageBox.Show("Pois tem.");
            }
            else
            {
                MessageBox.Show("Ai isso é que tem!");
            }
        }
    }
}

O exemplo pode ser descarregado aqui: https://app.box.com/s/pg6s6m6thi9nz83jz87v6lufh3uwxjfp

Ler mais informações acerca da classe MessageBox.

Como carregar num botão da interface recorrendo à programação (C# WPF)

Carregar num botão de uma interface gráfica é tão simples como pegar no rato e fazer um clique sobre o mesmo!

Mas vamos supor que queremos clicar noutro botão (B2) que, após a execução de uma tarefa, exige que um segundo botão seja também clicado(B1).

exemplobotaoNeste exemplo, sempre que um botão é pressionado, o seu contador é incrementado. Continue reading “Como carregar num botão da interface recorrendo à programação (C# WPF)”