Enviado em 08/10/2013 - 10:30h
Ola pessoalEnviado em 08/10/2013 - 11:02h
Enviado em 08/10/2013 - 12:38h
ok, eis o código do C++ Builder xe5void __fastcall TDM::DataModuleCreate(TObject *Sender) { FILE *fp; int cont2 = 0, cont3 = 0; char str1, str2[80], str3[80]; char banco[80]; String usuario, senha; FILE *p_txt; try { p_txt = fopen("dbxConnnections.ini","r"); // lendo o arquivo fgets(banco, 80, p_txt); // esse 80 deve ser o limite... coloquei um limite grande... fclose(p_txt); fp = fopen("dbxConnnections.ini", "r"); while (fgets(str2, 80, fp) != NULL) { if (cont2 == 1) { usuario = str2; } cont2 = cont2 + 1; } fclose(fp); fp = fopen("dbxConnnections.ini", "r"); while (fgets(str3, 81, fp) != NULL) { if (cont3 == 2) { senha = str3; } cont3 = cont3 + 1; } fclose(fp); } catch (...) { // Problemas com o Windows 8 Application->OnException = NULL; Application->OnMessage = NULL; } try { SQLCon->ConnectionName = "FBConnection"; SQLCon->DriverName = "FireBird"; SQLCon->GetDriverFunc = "getSQLDriverINTERBASE"; SQLCon->LibraryName = "dbxfb.dll"; SQLCon->VendorLib = "fbclient.dll"; SQLCon->Params->Values["Database"] = banco; SQLCon->Params->Values["User_Name"] = usuario; SQLCon->Params->Values["Password"] = senha; SQLCon->Open(); } catch (...) { Application->OnException = NULL; Application->OnMessage = NULL; } }
Enviado em 08/10/2013 - 13:51h
Para que abrir o mesmo arquivo três vezes distintas para, na prática, ler três linhas consecutivas?char banco[80], usuario[80], senha[80]; fp=fopen("dbxConnnections.ini", "r"); if(fp==NULL) throw std::runtime_error(strerror(errno)); if( fgets(banco, sizeof banco, fp)==NULL || // Lê 1ª linha, que contem o nome do banco fgets(usuario, sizeof usuario, fp)==NULL || // Lê 2ª linha, que contém o nome do usuário fgets(senha, sizeof senha, fp)==NULL // Lê 3ª linha, que contém a senha ){ fclose(fp); throw std::runtime_error("Formato do arquivo inválido"); } fclose(fp); banco[strlen(banco)-1]=0; // elimina '\n' da string com nome do banco usuario[strlen(usuario)-1]=0; // elimina '\n' da string com nome do usuario // elimina '\n' da string (aqui tem de ser mais longo, porque o '\n' pode existir ou não). l=strlen(senha)-1; if(l>=0 && senha[l]=='\n') senha[l]=0;
std::string banco, usuario, senha; try { std::ifstream iniFile; iniFile.exceptions(std::ifstream::failbit | std::ifstream::badbit | std::ifstream::eofbit); iniFile.open("dbxConnnections.ini"); std::getline(iniFile, banco); std::getline(iniFile, usuario); std::getline(iniFile, senha); } catch(std::ifstream::failure &e){ /* Trata erro de leitura do arquivo "dbxConnnections.ini". */ }
Enviado em 08/10/2013 - 14:57h
Opa ...Enviado em 08/10/2013 - 19:16h
Por quê de quê? Dos caracteres inesperados?Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Solução rápida para o problema do Network Manager conectar mas não navegar
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
Criar atalho para uma pasta na area de trabalho no Linux Mint? [RESOLV... (2)
Como rodo essa suinaria? [RESOLVIDO] (9)
Redes Wifi não aparecem no Linux Mint cinnamon [RESOLVIDO] (5)