function ProcessArquivo(const Origem, Destino : string; Operacao, Modo:Integer) : Boolean; // Requer a unit ShellApi na clausula uses da unit Const Aborted : Boolean = False; var shfo : TSHFileOpStruct; begin FillChar(shfo,SizeOf(shfo),$0); with shfo do begin if Operacao > 2 then begin operacao := 2; end; if Modo > 5 then begin modo := 1; end; case operacao of 1: wFunc := FO_MOVE; 2: wFunc := FO_COPY; end; pFrom := Pchar(Origem); pTo := Pchar(Destino); case Modo of 1: fFlags := FOF_SILENT; 2: fFlags := FOF_ALLOWUNDO or FOF_FILESONLY; 3: fFlags := FOF_RENAMEONCOLLISION; 4: fFlags := FOF_NOCONFIRMATION; 5: fFlags := FOF_SIMPLEPROGRESS; end; end; Result := (SHFileOperation(shfo)= 0) and (not Aborted); end;
DELPHI – Tamanho de um arquivo
function TamArquivo(Arquivo: string): Integer; begin with TFileStream.Create(Arquivo, fmOpenRead or fmShareExclusive) do try Result := Size; finally Free; end; end;
Solução enviada por Dennis Göhlert (Berlin/German):
function GetFileSize(const szFile: String): Int64; var fFile: THandle; wfd: TWIN32FINDDATA; begin result := 0; if not FileExists(szFile) then exit; fFile := FindFirstfile(pchar(szFile),wfd); if fFile = INVALID_HANDLE_VALUE then exit; result := (wfd.nFileSizeHigh*(MAXDWORD))+wfd.nFileSizeLow; windows.FindClose(fFile); end;
WP – Alterar a URL do site ou blog
UPDATE wp_options SET option_value = replace(option_value, 'http://www.antigo-dominio.com.br', 'http://www.novo-dominio.com.br') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://www.antigo-dominio.com.br','http://www.novo-dominio.com.br'); UPDATE wp_posts SET post_content = replace(post_content, 'http://www.antigo-dominio.com.br', 'http://www.novo-dominio.com.br');
ANDROID – Chamar vídeo do YouTube
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=Hxy8BZGQ5Jo"))); Log.i("Video", "Video Playing....");
WP – Ordenando CATEGORIAS por DESCRIÇÃO
$ucats = get_categories(array('child_of' => DAEMON_CATEGORIA_EQUIPE)); $categories = array(); foreach ($ucats as $cat) { $categories[$cat->description]= $cat; } sort($categories);
DELPHI – BASE 64
const Codes64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/'; function Encode64(S: string): string; var i: Integer; a: Integer; x: Integer; b: Integer; begin Result := ''; a := 0; b := 0; for i := 1 to Length(s) do begin x := Ord(s[i]); b := b * 256 + x; a := a + 8; while a >= 6 do begin a := a - 6; x := b div (1 shl a); b := b mod (1 shl a); Result := Result + Codes64[x + 1]; end; end; if a > 0 then begin x := b shl (6 - a); Result := Result + Codes64[x + 1]; end; end; function Decode64(S: string): string; var i: Integer; a: Integer; x: Integer; b: Integer; begin Result := ''; a := 0; b := 0; for i := 1 to Length(s) do begin x := Pos(s[i], codes64) - 1; if x >= 0 then begin b := b * 64 + x; a := a + 6; if a >= 8 then begin a := a - 8; x := b shr a; b := b mod (1 shl a); x := x mod 256; Result := Result + chr(x); end; end else Exit; end; end;
DELPHI – Busca utilizando caracteres (COLLATE) no MS ACCESS
Sabendo-se que a busca ignorando caracteres NÃO FUNCIONA no Microsoft Access, a solução foi criar múltiplos parametros de busca, utilizando a formula a seguir (desenvolvida em Pascal).
//busca inteligente por nomes strBuscaNome:= '([mensalistas].NomeCliente LIKE "%'+strBusca+'%")'; //áäàãâÁÄÀàstrBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'a','á',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'a','ä',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'a','à',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'a','ã',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'a','â',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'A','Á',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'A','Ä',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'A','À',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'A','Ã',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'A','Â',[rfReplaceAll])+'%")'; //éëèêÉËÈÊ strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'e','é',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'e','ë',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'e','è',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'e','ê',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'E','É',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'E','Ë',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'E','È',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'E','Ê',[rfReplaceAll])+'%")'; //íïìîÍÏÌÎ strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'i','í',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'i','ï',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'i','ì',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'i','î',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'I','Í',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'I','Ï',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'I','Ì',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'I','Î',[rfReplaceAll])+'%")'; //óöòõôÓÖÒÕÔ strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'o','ó',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'o','ö',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'o','ò',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'o','õ',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'o','ô',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'O','Ó',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'O','Ö',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'O','Ò',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'O','Õ',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'O','Ô',[rfReplaceAll])+'%")'; //úüùûÚÜÙÛ strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'u','ú',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'u','ü',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'u','ù',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'u','û',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'U','Ú',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'U','Ü',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'U','Ù',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'U','Û',[rfReplaceAll])+'%")'; //çÇ strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'c','ç',[rfReplaceAll])+'%")'; strBuscaNome:=strBuscaNome+' OR ([mensalistas].NomeCliente LIKE "%'+StringReplace(strBusca,'C','Ç',[rfReplaceAll])+'%")';
Sublime Text 2 no MacOSX
No terminal:
1. cd /Applications/Sublime\ Text\ 2.app/Contents/MacOS/
2. Edite o arquivo ->> “vim Sublime\ Text\ 2″
3. Mude para o modo de hexadecimal ->> “:$!xxd”
4. Substitua a string ->> “:%s/5BE509C33B020111/5BE509C32B020111/g”
XCode 3.2 para Mac OSX 10.6.8 (Snow Leopard)
Link para download: https://developer.apple.com/devcenter/download.action?path=/Developer_Tools/xcod e_3.2.6_and_ios_sdk_4.3__final/xcode_3.2.6_and_ios_sdk_4.3.dmg
Na instalação poderá aparecer uma mensagem pedindo para fechar o iTunes, vá então até o “Activity Monitor”, ou “Monitor de atividades”, como preferir, e encerre o processo “iTunesHelper”.
Como atualizar o SVN do MacOSx
* Necessário que você possua o XCODE instalado, caso não tenha, baixe-o em: https://developer.apple.com/downloads/index.action?q=xcode
Abra o terminal, efetue login como root (sudo su).
Baixe o pacote SVN atualizado:
cd ~ curl -o subversion-latest.tar.gz http://apache.mirrors.tds.net/subversion/subversion-1.8.8.tar.gz tar -xvf subversion-latest.tar.gz
Compilando:
cd ~/subversion-1.8.8/ sh get-deps.sh serf cd ~/subversion-1.8.8/serf/ ./configure make make install cd .. ../configure --prefix=/usr/local --with-serf=/usr/local/serf make make install
Adicione ao seu .bash_profile (pico ~/.bash_profile) a seguinte linha:
export PATH=/usr/local/bin:$PATH
Reinicie o computador e teste o SVN utilizando o terminal:
svn --version
🙂