-Añadido la version 1.0 de FastReplacer

parent 66fe3cfa

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastReplacer", "FastReplacer\FastReplacer.csproj", "{15DC47DE-CE59-4941-AD90-A9972D47A4E8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{15DC47DE-CE59-4941-AD90-A9972D47A4E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15DC47DE-CE59-4941-AD90-A9972D47A4E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15DC47DE-CE59-4941-AD90-A9972D47A4E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15DC47DE-CE59-4941-AD90-A9972D47A4E8}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8F34235B-0218-4002-A71A-4E6C8653F527}
EndGlobalSection
EndGlobal
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>
\ No newline at end of file
using System;
using System.IO;
using System.Text;
namespace FastReplacer
{
/// <summary>
/// =============================================================================
/// Desarrollador: F. Iván G. Torres
/// Fecha: 11/04/2018
/// =============================================================================
/// Descripcion:
/// Programa de consola que replazará una letra, una palabra o una frase
/// de un documento de TEXTO PLANO por otra letra, palabra o frase introducida
/// por el usuario.
///
/// =============================================================================
/// Ejemplo de uso:
/// -Para solo un caracter o palabra
/// ./FastReplacer.appref-ms C:/Carpeta(s)/Archivo.txt PalabraARemplazar NuevaPalabra
/// -Para más de una palabra
/// FastReplacer.appref-ms C:/Carpeta(s)/Archivo.txt Palabras_A_Remplazar Nuevas_Palabras
/// =============================================================================
/// /!\ Advertencias:
/// ----Aplicacion pensada para reemplazar caracteres en texto plano si se usa
/// sobre texto enriquecido puede causar pérdida de datos.
/// ----La apliación está pensada para texto codificado bajo UTF-8, por lo que si
/// se pretende que se puedan leer carácteres especiales como tildes o 'ñ' el archivo
/// de texto deberá estar codificado en UTF-8. No obstante también se acepta el resto
/// de codificaciones, causando pérdidas de datos en carácteres no encontrados.
/// =============================================================================
/// </summary>
class FReplacer
{
/* Version :1.0 */
/// <summary>
/// Defines the entry point of the application.
/// </summary>
/// <param name="args">The arguments.</param>
static void Main(string[] args)
{
try
{
if (CheckArgumentos(args))
{
if (!String.IsNullOrEmpty(CheckPath(args[0])))
{
string path = args[0];
if (CheckFile(path))
{
string palabraAntigua = LimpiaPalabras(args[1]);
string palabraNueva = LimpiaPalabras(args[2]);
if (CambiaPalabras(path, palabraAntigua, palabraNueva))
{
Console.WriteLine("OK! : Operación realizada con éxito");
}
else
{
Console.WriteLine("Error: No se ha podido realizar la operación");
}
}
else
{
Console.WriteLine("Error: No se ha podido abrir el archivo");
}
}
else
{
Console.WriteLine("Error: Ruta del archivo incorrecto");
}
}
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
Console.WriteLine("Pulse Enter para finalizar...");
Console.ReadLine();
}
/// <summary>
/// Comprueba si solo se han introducido 3 argumentos.
/// </summary>
/// <param name="argumentos">The argumentos.</param>
/// <returns></returns>
private static bool CheckArgumentos(string[] argumentos)
{
if (argumentos.Length == 3)
{
if (argumentos[0].Length > 0 && argumentos[1].Length > 0 && argumentos[2].Length > 0)
{
return true;
}
Console.WriteLine("Error: Argumentos incorrectos. Uno de los argumentos está vacío");
}
Console.WriteLine("Error: Numero de argumentos incorrectos. Se esperaban (3) y se introdujeron ({0})", argumentos.Length);
return false;
}
/// <summary>
/// Comprueba si la ruta del archivo es válida.
/// </summary>
/// <param name="path">The path.</param>
/// <returns></returns>
private static string CheckPath(string path)
{
try
{
Path.GetFullPath(path);
return path;
}
catch (Exception) { return null; }
}
/// <summary>
/// Comprueba si se puede abrir el archivo.
/// </summary>
/// <param name="path">The path.</param>
/// <returns></returns>
private static bool CheckFile(string path)
{
try
{
using (FileStream fs = File.Open(path, FileMode.Open))
{
byte[] b = new byte[64];
UTF8Encoding temp = new UTF8Encoding(true);
fs.Read(b, 0, b.Length);
fs.Close();
}
return true;
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// Limpia las barras bajas y las reemplaza por espacios.
/// </summary>
/// <returns></returns>
private static string LimpiaPalabras(string palabras)
{
if (palabras.Contains("_"))
{
string palabraConEspacios = palabras.Replace("_", " ");
return palabraConEspacios;
}
else
{
return palabras;
}
}
/// <summary>
/// Lee el fichero y cambia la(s) palabra(s).
/// </summary>
/// <param name="Path">The path.</param>
/// <param name="Antigua">Antigua palabra.</param>
/// <param name="Nueva">Nueva palabra.</param>
/// <returns></returns>
private static bool CambiaPalabras(string Path, string Antigua, string Nueva)
{
try
{
string Texto = string.Empty;
StreamReader sr = new StreamReader(Path, System.Text.Encoding.UTF8);
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
Texto = Texto + s + Environment.NewLine;
}
}
sr.Close();
string TextoNuevo = Texto.Replace(Antigua, Nueva);
File.WriteAllText(Path, TextoNuevo);
return true;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{15DC47DE-CE59-4941-AD90-A9972D47A4E8}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>FastReplacer</RootNamespace>
<AssemblyName>FastReplacer</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>C:\Users\fran\Desktop\aplauidido\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>1</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ManifestCertificateThumbprint>6B6A059B0DB1960642249B8F76BAB2B79D181225</ManifestCertificateThumbprint>
</PropertyGroup>
<PropertyGroup>
<ManifestKeyFile>FastReplacer_TemporaryKey.pfx</ManifestKeyFile>
</PropertyGroup>
<PropertyGroup>
<GenerateManifests>true</GenerateManifests>
</PropertyGroup>
<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="FastReplacer.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="FastReplacer_TemporaryKey.pfx" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.6.1">
<Visible>False</Visible>
<ProductName>Microsoft .NET Framework 4.6.1 %28x86 y x64%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// La información general de un ensamblado se controla mediante el siguiente
// conjunto de atributos. Cambie estos valores de atributo para modificar la información
// asociada con un ensamblado.
[assembly: AssemblyTitle("FastReplacer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("FastReplacer")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Si establece ComVisible en false, los tipos de este ensamblado no estarán visibles
// para los componentes COM. Si es necesario obtener acceso a un tipo en este ensamblado desde
// COM, establezca el atributo ComVisible en true en este tipo.
[assembly: ComVisible(false)]
// El siguiente GUID sirve como id. de typelib si este proyecto se expone a COM.
[assembly: Guid("15dc47de-ce59-4941-ad90-a9972d47a4e8")]
// La información de versión de un ensamblado consta de los cuatro valores siguientes:
//
// Versión principal
// Versión secundaria
// Número de compilación
// Revisión
//
// Puede especificar todos los valores o utilizar los números de compilación y de revisión predeterminados
// mediante el carácter '*', como se muestra a continuación:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment