mirror of
https://github.com/reactos/reactos.git
synced 2024-11-04 22:00:55 +00:00
[FIND] Rewrite of the find utility. (#1553)
This commit contains a complete rewrite of find console utility. The goal of it was to make the source code easier to maintain and to add a missing feature (/offline switch). Additional changes: * now the program operates on Unicode strings; * added conutils and shlwapi as program's libraries; * added IDS_INVALID_SWITCH string into resources; * modified IDS_USAGE string to include /offline switch description. https://ss64.com/nt/find.html was used for reference.
This commit is contained in:
parent
9a6eb70ff9
commit
1bd330cd81
27 changed files with 407 additions and 350 deletions
|
@ -1,5 +1,8 @@
|
|||
|
||||
include_directories(${REACTOS_SOURCE_DIR}/sdk/lib/conutils)
|
||||
|
||||
add_executable(find find.c find.rc)
|
||||
set_module_type(find win32cui)
|
||||
add_importlibs(find user32 msvcrt kernel32)
|
||||
set_module_type(find win32cui UNICODE)
|
||||
target_link_libraries(find conutils ${PSEH_LIB})
|
||||
add_importlibs(find user32 msvcrt kernel32 shlwapi)
|
||||
add_cd_file(TARGET find DESTINATION reactos/system32 FOR all)
|
||||
|
|
|
@ -1,256 +1,263 @@
|
|||
/* find.c */
|
||||
|
||||
/* Copyright (C) 1994-2002, Jim Hall <jhall@freedos.org> */
|
||||
|
||||
/* Adapted for ReactOS */
|
||||
|
||||
/*
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
|
||||
/* This program locates a string in a text file and prints those lines
|
||||
* that contain the string. Multiple files are clearly separated.
|
||||
* PROJECT: ReactOS Find Command
|
||||
* LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
|
||||
* PURPOSE: Prints all lines of a file that contain a string.
|
||||
* COPYRIGHT: Copyright 1994-2002 Jim Hall (jhall@freedos.org)
|
||||
* Copyright 2019 Paweł Cholewa (DaMcpg@protonmail.com)
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
//#include <string.h>
|
||||
//#include <ctype.h>
|
||||
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winuser.h>
|
||||
|
||||
//#include <io.h>
|
||||
#include <dos.h>
|
||||
#include <conutils.h>
|
||||
#include <shlwapi.h> /* StrStrW and StrStrIW */
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
/* Symbol definition */
|
||||
#define MAX_STR 1024
|
||||
#define FIND_LINE_BUFFER_SIZE 4096
|
||||
|
||||
/* This function prints out all lines containing a substring. There are some
|
||||
* conditions that may be passed to the function.
|
||||
static BOOL bInvertSearch = FALSE;
|
||||
static BOOL bCountLines = FALSE;
|
||||
static BOOL bDisplayLineNumbers = FALSE;
|
||||
static BOOL bIgnoreCase = FALSE;
|
||||
static BOOL bDoNotSkipOfflineFiles = FALSE;
|
||||
|
||||
/**
|
||||
* @name FindString
|
||||
* @implemented
|
||||
*
|
||||
* Prints all lines of the stream that contain a string.
|
||||
*
|
||||
* @param pStream
|
||||
* Stream to read from.
|
||||
*
|
||||
* @param szFilePath
|
||||
* Filename to print in console. Can be NULL.
|
||||
*
|
||||
* @param szSearchedString
|
||||
* String to search for.
|
||||
*
|
||||
* @return
|
||||
* 0 if the string was found at least once, 1 otherwise.
|
||||
*
|
||||
* RETURN: If the string was found at least once, returns 1.
|
||||
* If the string was not found at all, returns 0.
|
||||
*/
|
||||
int
|
||||
find_str (char *sz, FILE *p, int invert_search,
|
||||
int count_lines, int number_output, int ignore_case)
|
||||
static int FindString(FILE* pStream, LPWSTR szFilePath, LPWSTR szSearchedString)
|
||||
{
|
||||
int i, length;
|
||||
long line_number = 0, total_lines = 0;
|
||||
char *c, temp_str[MAX_STR], this_line[MAX_STR];
|
||||
WCHAR szLineBuffer[FIND_LINE_BUFFER_SIZE];
|
||||
LONG lLineCount = 0;
|
||||
LONG lLineNumber = 0;
|
||||
BOOL bSubstringFound;
|
||||
int iReturnValue = 1;
|
||||
|
||||
/* Convert to upper if needed */
|
||||
if (ignore_case)
|
||||
if (szFilePath != NULL)
|
||||
{
|
||||
length = strlen (sz);
|
||||
for (i = 0; i < length; i++)
|
||||
sz[i] = toupper (sz[i]);
|
||||
}
|
||||
/* Convert the filename to uppercase (for formatting) */
|
||||
CharUpperW(szFilePath);
|
||||
|
||||
/* Scan the file until EOF */
|
||||
while (fgets (temp_str, MAX_STR, p) != NULL)
|
||||
{
|
||||
/* Remove the trailing newline */
|
||||
length = strlen (temp_str);
|
||||
if (temp_str[length-1] == '\n')
|
||||
{
|
||||
temp_str[length-1] = '\0';
|
||||
}
|
||||
/* Print the file's header */
|
||||
ConPrintf(StdOut, L"\n---------- %s", szFilePath);
|
||||
|
||||
/* Increment number of lines */
|
||||
line_number++;
|
||||
strcpy (this_line, temp_str);
|
||||
|
||||
/* Convert to upper if needed */
|
||||
if (ignore_case)
|
||||
{
|
||||
for (i = 0; i < length; i++)
|
||||
{
|
||||
temp_str[i] = toupper (temp_str[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* Locate the substring */
|
||||
|
||||
/* strstr() returns a pointer to the first occurrence in the
|
||||
string of the substring */
|
||||
c = strstr (temp_str, sz);
|
||||
|
||||
if ( ((invert_search) ? (c == NULL) : (c != NULL)) )
|
||||
{
|
||||
if (!count_lines)
|
||||
{
|
||||
if (number_output)
|
||||
printf ("%ld:", line_number);
|
||||
|
||||
/* Print the line of text */
|
||||
puts (this_line);
|
||||
}
|
||||
|
||||
total_lines++;
|
||||
} /* long if */
|
||||
} /* while fgets */
|
||||
|
||||
if (count_lines)
|
||||
{
|
||||
/* Just show num. lines that contain the string */
|
||||
printf ("%ld\n", total_lines);
|
||||
}
|
||||
|
||||
|
||||
/* RETURN: If the string was found at least once, returns 1.
|
||||
* If the string was not found at all, returns 0.
|
||||
*/
|
||||
return (total_lines > 0 ? 1 : 0);
|
||||
}
|
||||
|
||||
/* Show usage */
|
||||
void
|
||||
usage (void)
|
||||
{
|
||||
WCHAR wszUsage[4096];
|
||||
char oemUsage[4096];
|
||||
|
||||
LoadStringW (GetModuleHandleW (NULL), IDS_USAGE, wszUsage, sizeof(wszUsage) / sizeof(wszUsage[0]));
|
||||
CharToOemW (wszUsage, oemUsage);
|
||||
fputs (oemUsage, stdout);
|
||||
}
|
||||
|
||||
|
||||
/* Main program */
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
char *opt, *needle = NULL;
|
||||
int ret = 0;
|
||||
WCHAR wszMessage[4096];
|
||||
char oemMessage[4096];
|
||||
|
||||
int invert_search = 0; /* flag to invert the search */
|
||||
int count_lines = 0; /* flag to whether/not count lines */
|
||||
int number_output = 0; /* flag to print line numbers */
|
||||
int ignore_case = 0; /* flag to be case insensitive */
|
||||
|
||||
FILE *pfile; /* file pointer */
|
||||
int hfind; /* search handle */
|
||||
struct _finddata_t finddata; /* _findfirst, filenext block */
|
||||
|
||||
/* Scan the command line */
|
||||
while ((--argc) && (needle == NULL))
|
||||
{
|
||||
if (*(opt = *++argv) == '/')
|
||||
if (bCountLines)
|
||||
{
|
||||
switch (opt[1])
|
||||
{
|
||||
case 'c':
|
||||
case 'C': /* Count */
|
||||
count_lines = 1;
|
||||
break;
|
||||
|
||||
case 'i':
|
||||
case 'I': /* Ignore */
|
||||
ignore_case = 1;
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
case 'N': /* Number */
|
||||
number_output = 1;
|
||||
break;
|
||||
|
||||
case 'v':
|
||||
case 'V': /* Not with */
|
||||
invert_search = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
usage ();
|
||||
exit (2); /* syntax error .. return error 2 */
|
||||
break;
|
||||
}
|
||||
ConPrintf(StdOut, L": ");
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
/* Get the string */
|
||||
if (needle == NULL)
|
||||
{
|
||||
/* Assign the string to find */
|
||||
needle = *argv;
|
||||
}
|
||||
}
|
||||
ConPrintf(StdOut, L"\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* Check for search string */
|
||||
if (needle == NULL)
|
||||
/* Loop through every line in the file */
|
||||
while (fgetws(szLineBuffer, sizeof(szLineBuffer), pStream) != NULL)
|
||||
{
|
||||
/* No string? */
|
||||
usage ();
|
||||
exit (1);
|
||||
}
|
||||
lLineCount++;
|
||||
|
||||
/* Scan the files for the string */
|
||||
if (argc == 0)
|
||||
{
|
||||
ret = find_str (needle, stdin, invert_search, count_lines,
|
||||
number_output, ignore_case);
|
||||
}
|
||||
|
||||
while (--argc >= 0)
|
||||
{
|
||||
hfind = _findfirst (*++argv, &finddata);
|
||||
if (hfind < 0)
|
||||
{
|
||||
/* We were not able to find a file. Display a message and
|
||||
set the exit status. */
|
||||
LoadStringW (GetModuleHandleW (NULL), IDS_NO_SUCH_FILE, wszMessage, sizeof(wszMessage) / sizeof(wszMessage[0]));
|
||||
CharToOemW (wszMessage, oemMessage);
|
||||
fprintf (stderr, oemMessage, *argv);
|
||||
}
|
||||
else
|
||||
if (bIgnoreCase)
|
||||
{
|
||||
/* repeat find next file to match the filemask */
|
||||
do
|
||||
bSubstringFound = StrStrIW(szLineBuffer, szSearchedString) != NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
bSubstringFound = StrStrW(szLineBuffer, szSearchedString) != NULL;
|
||||
}
|
||||
|
||||
|
||||
/* Check if this line can be counted */
|
||||
if (bSubstringFound != bInvertSearch)
|
||||
{
|
||||
iReturnValue = 0;
|
||||
|
||||
if (bCountLines)
|
||||
{
|
||||
/* We have found a file, so try to open it */
|
||||
if ((pfile = fopen (finddata.name, "r")) != NULL)
|
||||
{
|
||||
printf ("---------------- %s\n", finddata.name);
|
||||
ret = find_str (needle, pfile, invert_search, count_lines,
|
||||
number_output, ignore_case);
|
||||
fclose (pfile);
|
||||
}
|
||||
else
|
||||
{
|
||||
LoadStringW (GetModuleHandleW (NULL), IDS_CANNOT_OPEN, wszMessage, sizeof(wszMessage) / sizeof(wszMessage[0]));
|
||||
CharToOemW (wszMessage, oemMessage);
|
||||
fprintf (stderr, oemMessage,
|
||||
finddata.name);
|
||||
lLineNumber++;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Display the line on the screen */
|
||||
if (bDisplayLineNumbers)
|
||||
{
|
||||
ConPrintf(StdOut, L"[%ld]", lLineCount);
|
||||
}
|
||||
}
|
||||
while (_findnext(hfind, &finddata) > 0);
|
||||
ConPrintf(StdOut, L"%s", szLineBuffer);
|
||||
}
|
||||
}
|
||||
_findclose(hfind);
|
||||
} /* for each argv */
|
||||
}
|
||||
|
||||
/* RETURN: If the string was found at least once, returns 0.
|
||||
* If the string was not found at all, returns 1.
|
||||
* (Note that find_str.c returns the exact opposite values.)
|
||||
*/
|
||||
exit ( (ret ? 0 : 1) );
|
||||
if (bCountLines)
|
||||
{
|
||||
/* Print the matching line count */
|
||||
ConPrintf(StdOut, L"%ld\n", lLineNumber);
|
||||
}
|
||||
else if (szFilePath != NULL && iReturnValue == 0)
|
||||
{
|
||||
/* Print a newline for formatting */
|
||||
ConPrintf(StdOut, L"\n");
|
||||
}
|
||||
|
||||
return iReturnValue;
|
||||
}
|
||||
|
||||
int wmain(int argc, WCHAR* argv[])
|
||||
{
|
||||
int i;
|
||||
int iReturnValue = 2;
|
||||
int iSearchedStringIndex = -1;
|
||||
|
||||
BOOL bFoundFileParameter = FALSE;
|
||||
|
||||
HANDLE hFindFileHandle;
|
||||
WIN32_FIND_DATAW FindData;
|
||||
|
||||
FILE* pOpenedFile;
|
||||
|
||||
ConInitStdStreams();
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
/* If no argument were provided by the user, display program usage and exit */
|
||||
ConResPuts(StdOut, IDS_USAGE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Parse the command line arguments */
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
/* Check if this argument contains a switch */
|
||||
if (lstrlenW(argv[i]) == 2 && argv[i][0] == L'/')
|
||||
{
|
||||
switch (argv[i][1])
|
||||
{
|
||||
case L'?':
|
||||
ConResPuts(StdOut, IDS_USAGE);
|
||||
return 0;
|
||||
case L'v':
|
||||
case L'V':
|
||||
bInvertSearch = TRUE;
|
||||
break;
|
||||
case L'c':
|
||||
case L'C':
|
||||
bCountLines = TRUE;
|
||||
break;
|
||||
case L'n':
|
||||
case L'N':
|
||||
bDisplayLineNumbers = TRUE;
|
||||
break;
|
||||
case L'i':
|
||||
case L'I':
|
||||
bIgnoreCase = TRUE;
|
||||
break;
|
||||
default:
|
||||
/* Report invalid switch error */
|
||||
ConResPuts(StdOut, IDS_INVALID_SWITCH);
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
else if (lstrlenW(argv[i]) > 2 && argv[i][0] == L'/')
|
||||
{
|
||||
/* Check if this parameter is /OFF or /OFFLINE */
|
||||
if (lstrcmpiW(argv[i], L"/off") == 0 || lstrcmpiW(argv[i], L"/offline") == 0)
|
||||
{
|
||||
bDoNotSkipOfflineFiles = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Report invalid switch error */
|
||||
ConResPuts(StdOut, IDS_INVALID_SWITCH);
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (iSearchedStringIndex == -1)
|
||||
{
|
||||
iSearchedStringIndex = i;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* There's a file specified in the parameters, no need to read from stdin */
|
||||
bFoundFileParameter = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (iSearchedStringIndex == -1)
|
||||
{
|
||||
/* User didn't provide the string to search for, display program usage and exit */
|
||||
ConResPuts(StdOut, IDS_USAGE);
|
||||
return 2;
|
||||
}
|
||||
|
||||
if (bFoundFileParameter)
|
||||
{
|
||||
/* After the command line arguments were parsed, iterate through them again to get the filenames */
|
||||
for (i = 1; i < argc; i++)
|
||||
{
|
||||
/* If the value is a switch or the searched string, continue */
|
||||
if ((lstrlenW(argv[i]) > 0 && argv[i][0] == L'/') || i == iSearchedStringIndex)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
hFindFileHandle = FindFirstFileW(argv[i], &FindData);
|
||||
if (hFindFileHandle == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
ConResPrintf(StdOut, IDS_NO_SUCH_FILE, argv[i]);
|
||||
continue;
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
/* Check if the file contains offline attribute and should be skipped */
|
||||
if ((FindData.dwFileAttributes & FILE_ATTRIBUTE_OFFLINE) && !bDoNotSkipOfflineFiles)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
pOpenedFile = _wfopen(FindData.cFileName, L"r");
|
||||
if (pOpenedFile == NULL)
|
||||
{
|
||||
ConResPrintf(StdOut, IDS_CANNOT_OPEN, FindData.cFileName);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (FindString(pOpenedFile, FindData.cFileName, argv[iSearchedStringIndex]) == 0)
|
||||
{
|
||||
iReturnValue = 0;
|
||||
}
|
||||
else if (iReturnValue != 0)
|
||||
{
|
||||
iReturnValue = 1;
|
||||
}
|
||||
|
||||
fclose(pOpenedFile);
|
||||
} while (FindNextFileW(hFindFileHandle, &FindData));
|
||||
|
||||
FindClose(hFindFileHandle);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FindString(stdin, NULL, argv[iSearchedStringIndex]);
|
||||
}
|
||||
|
||||
return iReturnValue;
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
#include "resource.h"
|
||||
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Find Command"
|
||||
#define REACTOS_STR_INTERNAL_NAME "find"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "find.exe"
|
||||
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Find Command"
|
||||
#define REACTOS_STR_INTERNAL_NAME "find"
|
||||
#define REACTOS_STR_ORIGINAL_FILENAME "find.exe"
|
||||
#include <reactos/version.rc>
|
||||
|
||||
/* UTF-8 */
|
||||
|
@ -77,4 +77,4 @@
|
|||
#endif
|
||||
#ifdef LANGUAGE_ZH_TW
|
||||
#include "lang/zh-TW.rc"
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -2,12 +2,14 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
|
|||
|
||||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Извежда всички редове във файла, които съдържат указания низ..\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""низ"" [ файл... ]\n\
|
||||
/C Брои колко реда съдържат низа\n\
|
||||
/I Пренебрегва ГлАвНОсТта\n\
|
||||
/N Брой показани редове, като се започва от 1\n\
|
||||
/V Извеждане на редовете, НЕсъдържащи низа."
|
||||
IDS_USAGE "FIND: Извежда всички редове във файла, които съдържат указания низ.\n\n\
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""низ"" [файл...]\n\
|
||||
/V Извеждане на редовете, НЕсъдържащи низа.\n\
|
||||
/C Брои колко реда съдържат низа.\n\
|
||||
/N Брой показани редове, като се започва от 1.\n\
|
||||
/I Пренебрегва ГлАвНОсТта.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Няма такъв файл\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Отварянето на файла е невъзможно\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_CATALAN, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Mostra totes les linies que continguin una determinada cadena de caràcters.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""Cadena de caràcters"" [ file... ]\n\
|
||||
/C Conta el numero de linies que contenen la cadena de caràcters\n\
|
||||
/I Ignora majúscules i minúscules\n\
|
||||
/N Numero de linies mostrades, començant per la primera\n\
|
||||
/V Mostra les linies que no contenen la cadena de caràcters"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""Cadena de caràcters"" [file...]\n\
|
||||
/V Mostra les linies que no contenen la cadena de caràcters.\n\
|
||||
/C Conta el numero de linies que contenen la cadena de caràcters.\n\
|
||||
/N Numero de linies mostrades, començant per la primera.\n\
|
||||
/I Ignora majúscules i minúscules.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: No he trobat el fitxer\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: No puc obrir el fitxer\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -9,11 +9,13 @@ LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Zobrazí všechny řádky souboru obsahující hledaný řetězec.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""řetězec"" [ soubor... ]\n\
|
||||
/C Zobrazí počet řádků obsahující řetězec.\n\
|
||||
/I Ignoruje velikost písmen.\n\
|
||||
/N Čísluje zobrazené řádky, začíná od 1.\n\
|
||||
/V Zobrazí všechny řádky, které NEobsahují zadaný řetěžec."
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""řetězec"" [soubor...]\n\
|
||||
/V Zobrazí všechny řádky, které NEobsahují zadaný řetěžec.\n\
|
||||
/C Zobrazí počet řádků obsahující řetězec.\n\
|
||||
/N Čísluje zobrazené řádky, začíná od 1.\n\
|
||||
/I Ignoruje velikost písmen.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: Soubor %s nebyl nalezen.\n"
|
||||
IDS_CANNOT_OPEN "FIND: Soubor %s nelze otevřít!\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,12 +3,14 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "Sucht in einer Datei nach einer Zeichenfolge.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""Zeichenfolge""\n\
|
||||
[[Laufwerk:][Pfad]Dateiname]]\n\
|
||||
/C Zeigt nur die Anzahl der die Zeichenfolge enthaltenen Zeilen an.\n\
|
||||
/I Ignoriert Groß-/Kleinbuchstaben bei der Suche.\n\
|
||||
/N Zeigt die Zeilen mit ihren Zeilennummern an.\n\
|
||||
/V Zeigt alle Zeilen an, die die Zeichenfolge NICHT enhalten."
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""Zeichenfolge""\n\
|
||||
[[Laufwerk:][Pfad]Dateiname[ ...]]\n\
|
||||
/V Zeigt alle Zeilen an, die die Zeichenfolge NICHT enhalten.\n\
|
||||
/C Zeigt nur die Anzahl der die Zeichenfolge enthaltenen Zeilen an.\n\
|
||||
/N Zeigt die Zeilen mit ihren Zeilennummern an.\n\
|
||||
/I Ignoriert Groß-/Kleinbuchstaben bei der Suche.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "Datei %s nicht gefunden\n"
|
||||
IDS_CANNOT_OPEN "Datei %s kann nicht geöffnet werden.\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_GREEK, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Εκτυπώνει όλες τις γραμμές ενός αρχείου που περιέχουν ένα αλφαριθμητικό.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""αλφαριθμητικό"" [ αρχείο... ]\n\
|
||||
/C Μέτρηση γραμμών που περιέχουν το αλφαριθμητικό\n\
|
||||
/I Αγνόηση κεφαλαίων\n\
|
||||
/N Εμφάνιση αριθμών στις εμφανιζόμενες γραμμές, ξεκινώντας από το 1\n\
|
||||
/V Εκτύπωση γραμμών που δεν περιέχουν το αλφαριθμητικό"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""αλφαριθμητικό"" [αρχείο...]\n\
|
||||
/V Εκτύπωση γραμμών που δεν περιέχουν το αλφαριθμητικό.\n\
|
||||
/C Μέτρηση γραμμών που περιέχουν το αλφαριθμητικό.\n\
|
||||
/N Εμφάνιση αριθμών στις εμφανιζόμενες γραμμές, ξεκινώντας από το 1.\n\
|
||||
/I Αγνόηση κεφαλαίων.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Δεν υπάρχει αυτό το αρχείο\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Δεν ήταν δυνατό το άνοιγμα του αρχείου\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Prints all lines of a file that contain a string.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""string"" [ file... ]\n\
|
||||
/C Count the number of lines that contain string\n\
|
||||
/I Ignore case\n\
|
||||
/N Number the displayed lines, starting at 1\n\
|
||||
/V Print lines that do not contain the string"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""string"" [file...]\n\
|
||||
/V Print lines that do not contain the string.\n\
|
||||
/C Count the number of lines that contain the string.\n\
|
||||
/N Number the displayed lines, starting at 1.\n\
|
||||
/I Ignore case.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: No such file\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Cannot open file\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Imprime todas las líneas de un fichero que contiene una cadena.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""cadena"" [ fichero... ]\n\
|
||||
/C Cuenta el número de líneas que contienen la cadena de caracteres\n\
|
||||
/I Ignora mayúsculas y minúsculas\n\
|
||||
/N Numero de líneas a mostrar en pantalla, a partir de la primera\n\
|
||||
/V Muestra las líneas que no contienen la cadena de caracteres."
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""cadena"" [fichero...]\n\
|
||||
/V Muestra las líneas que no contienen la cadena de caracteres.\n\
|
||||
/C Cuenta el número de líneas que contienen la cadena de caracteres.\n\
|
||||
/N Numero de líneas a mostrar en pantalla, a partir de la primera.\n\
|
||||
/I Ignora mayúsculas y minúsculas.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: No se encontró el fichero\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: No se pudo abrir el fichero\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_ESTONIAN, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Trükib kõik read failist, mis sisaldavad stringi.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""string"" [ file... ]\n\
|
||||
/C Loenda arvuna stringi sisaldavaid ridu\n\
|
||||
/I Tõstutundetult\n\
|
||||
/N Nummerda kuvatud read alustades 1-st\n\
|
||||
/V Trüki read, mis ei sisalda stringi"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""string"" [file...]\n\
|
||||
/V Trüki read, mis ei sisalda stringi.\n\
|
||||
/C Loenda arvuna stringi sisaldavaid ridu.\n\
|
||||
/N Nummerda kuvatud read alustades 1-st.\n\
|
||||
/I Tõstutundetult.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Sellist faili ei leitud\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Ei saa faili avada\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Affiche toutes les lignes d'un fichier qui contiennent un morceau de texte.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""texte"" [ fichier... ]\n\
|
||||
/C Compte le nombre de lignes qui contiennent le texte\n\
|
||||
/I Insensible à la casse\n\
|
||||
/N Numérote les lignes affichées en commençant à 1\n\
|
||||
/V Affiche les lignes qui ne contiennent pas le texte"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""texte"" [fichier...]\n\
|
||||
/V Affiche les lignes qui ne contiennent pas le texte.\n\
|
||||
/C Compte le nombre de lignes qui contiennent le texte.\n\
|
||||
/N Numérote les lignes affichées en commençant à 1.\n\
|
||||
/I Insensible à la casse.\n\
|
||||
/OFF[LINE] Ne pas ignorer les fichiers ayant l'attribut hors-ligne."
|
||||
IDS_NO_SUCH_FILE "FIND: %s : fichier inexistant\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s : impossible d'ouvrir le fichier\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Visualizza le linee di un file che contengono un stringa.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""stringa"" [ file... ]\n\
|
||||
/C Conta il numero di linee che contengono la stringa\n\
|
||||
/I Ignora maiuscole/minuscole\n\
|
||||
/N Numera le linee visualizzate a partire da 1\n\
|
||||
/V Visualizza le linee che non contengono la stringa"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""stringa"" [file...]\n\
|
||||
/V Visualizza le linee che non contengono la stringa.\n\
|
||||
/C Conta il numero di linee che contengono la stringa.\n\
|
||||
/N Numera le linee visualizzate a partire da 1.\n\
|
||||
/I Ignora maiuscole/minuscole.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: File non trovato\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Impossibile aprire il file\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -12,11 +12,13 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Spausdina visas bylos eilutes, kuriose yra ieškomas tekstas.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""tekstas"" [ byla... ]\n\
|
||||
/C Skaičiuoti eilutes, kuriose yra ieškomas tekstas\n\
|
||||
/I Ignoruoti raidžių dydį\n\
|
||||
/N Numeruoti vaizduojamas eilutes, pradedant nuo 1\n\
|
||||
/V Spausdinti eilutes, kuriose nėra ieškomo teksto"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""tekstas"" [byla...]\n\
|
||||
/V Spausdinti eilutes, kuriose nėra ieškomo teksto.\n\
|
||||
/C Skaičiuoti eilutes, kuriose yra ieškomas tekstas.\n\
|
||||
/N Numeruoti vaizduojamas eilutes, pradedant nuo 1.\n\
|
||||
/I Ignoruoti raidžių dydį.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Tokios bylos nėra\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Nepavyko atverti bylos\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FINN: Skriv alle linjene for filen som inneholder en streng.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""streng"" [ fil... ]\n\
|
||||
/C Teller nummer av linjer som inneholder strenger\n\
|
||||
/I Ignorere sak\n\
|
||||
/N Nummer viste linjer, start med 1\n\
|
||||
/V Skriv linjer som ikke inneholder en streng"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""streng"" [fil...]\n\
|
||||
/V Skriv linjer som ikke inneholder en streng.\n\
|
||||
/C Teller nummer av linjer som inneholder strenger.\n\
|
||||
/N Nummer viste linjer, start med 1.\n\
|
||||
/I Ignorere sak.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FINN: %s: Ingen filer\n"
|
||||
IDS_CANNOT_OPEN "FINN: %s: Kan ikke åpne filen\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -11,11 +11,13 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Wyświetla wszystkie linie danego pliku, zawierające szukany ciąg znaków.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""ciąg znaków"" [ plik... ]\n\
|
||||
/C Oblicza w ilu liniach pojawił się szukany ciąg znaków\n\
|
||||
/I Ignoruje wielkość liter\n\
|
||||
/N Numeruje wyświetlane linie, zaczynając od 1\n\
|
||||
/V Wyświetla te linie, które nie zawierają szukanego ciągu znaków"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""ciąg znaków"" [plik...]\n\
|
||||
/V Wyświetla te linie, które nie zawierają szukanego ciągu znaków.\n\
|
||||
/C Oblicza w ilu liniach pojawił się szukany ciąg znaków.\n\
|
||||
/N Numeruje wyświetlane linie, zaczynając od 1.\n\
|
||||
/I Ignoruje wielkość liter.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Plik nie został znaleziony\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Nie można otworzyć pliku\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Localiza uma seqüência de texto em um ou mais arquivos.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""seqüência"" [ arquivo... ]\n\
|
||||
/C Exibe apenas o número de linhas que contêm a seqüência.\n\
|
||||
/I Ignora maiúsculas/minúsculas ao localizar uma seqüência.\n\
|
||||
/N Exibe o número de cada linha, iniciando no 1.\n\
|
||||
/V Exibe todas as linhas que NÃO contêm a seqüência especificada."
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""seqüência"" [arquivo...]\n\
|
||||
/V Exibe todas as linhas que NÃO contêm a seqüência especificada.\n\
|
||||
/C Exibe apenas o número de linhas que contêm a seqüência.\n\
|
||||
/N Exibe o número de cada linha, iniciando no 1.\n\
|
||||
/I Ignora maiúsculas/minúsculas ao localizar uma seqüência.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Arquivo não encontrado\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Não foi possível abrir o arquivo\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -11,11 +11,13 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Tipărește toate rândurile unui fișier ce conțin un șir.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""șir"" [ fișier... ]\n\
|
||||
/C Numără liniile ce conțin șirul.\n\
|
||||
/I Ignoră diferențele între majuscule și minuscule.\n\
|
||||
/N Numără rândurile afișate, începând cu 1.\n\
|
||||
/V Tipărește rândurile ce nu conțin șirul."
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""șir"" [fișier...]\n\
|
||||
/V Tipărește rândurile ce nu conțin șirul.\n\
|
||||
/C Numără liniile ce conțin șirul.\n\
|
||||
/N Numără rândurile afișate, începând cu 1.\n\
|
||||
/I Ignoră diferențele între majuscule și minuscule.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: Fișierul «%s» nu există!\n"
|
||||
IDS_CANNOT_OPEN "FIND: Fișierul «%s» nu poate fi deschis!\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,14 +3,16 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "Поиск текстовой строки в одном или нескольких файлах.\n\n\
|
||||
FIND [/V] [/C] [/N] [/I] ""строка"" [[диск:][путь]имя_файла[ ...]]\n\
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""строка"" [[диск:][путь]имя_файла[ ...]]\n\
|
||||
/V Вывод всех строк, НЕ содержащих заданную строку.\n\
|
||||
/C Вывод только общего числа строк, содержащих заданную строку.\n\
|
||||
/N Вывод номеров отображаемых строк.\n\
|
||||
/I Поиск без учета регистра символов.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set.\n\
|
||||
""строка"" Искомая строка.\n\
|
||||
[диск:][путь]имя_файла\n\
|
||||
Один или несколько файлов, в которых выполняется поиск."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Файл не существует.\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Невозможно открыть файл.\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -7,11 +7,13 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Zobrazí všetky riadky súboru obsahujúce hľadaný reťazec.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""reťazec"" [ súbor... ]\n\
|
||||
/C Zobrazí počet riadkov, ktoré obsahujú reťazec.\n\
|
||||
/I Ignoruje veľkosť písmen.\n\
|
||||
/N Čísluje zobrazené riadky, začína od 1.\n\
|
||||
/V Zobrazí všetky riadky, ktoré neobsahujú hľadaný reťazec."
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""reťazec"" [súbor...]\n\
|
||||
/V Zobrazí všetky riadky, ktoré neobsahujú hľadaný reťazec.\n\
|
||||
/C Zobrazí počet riadkov, ktoré obsahujú reťazec.\n\
|
||||
/N Čísluje zobrazené riadky, začína od 1.\n\
|
||||
/I Ignoruje veľkosť písmen.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: Súbor %s sa nenašiel.\n"
|
||||
IDS_CANNOT_OPEN "FIND: Súbor %s sa nedá otvoriť.\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -7,11 +7,13 @@ LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Printon të gjitha linjat e një skedari që përmbajnë një fije.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""fije"" [ file... ]\n\
|
||||
/C Numërimi i numerave e linjave që përmbajnë nje fije\n\
|
||||
/I Injorojnë çështjen\n\
|
||||
/N Shfaq numrin e linjave, duke filluar nga 1\n\
|
||||
/V Shfaq linjat e nuk permbajne nje fije"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""fije"" [file...]\n\
|
||||
/V Shfaq linjat e nuk permbajne nje fije.\n\
|
||||
/C Numërimi i numerave e linjave që përmbajnë nje fije.\n\
|
||||
/N Shfaq numrin e linjave, duke filluar nga 1.\n\
|
||||
/I Injorojnë çështjen.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Dokumenti nuk i gjet\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: E pamundur te hapet dokumenti\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -3,11 +3,13 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Skriver ut alla rader i en fil som innehåller en sträng.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""sträng"" [ fil... ]\n\
|
||||
/C Räkna antalet rader som innehåller en strängen\n\
|
||||
/I Ignorera skiftläge\n\
|
||||
/N Antal visade rader, börjar på 1\n\
|
||||
/V Skriver ut rader som inte innehåller strängen"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""sträng"" [fil...]\n\
|
||||
/V Skriver ut rader som inte innehåller strängen.\n\
|
||||
/C Räkna antalet rader som innehåller en strängen.\n\
|
||||
/N Antal visade rader, börjar på 1.\n\
|
||||
/I Ignorera skiftläge.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Ingen sorts fil\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Kan inte öppna filen\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -5,11 +5,13 @@ LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Bir dizgi içeren bir kütüğün tüm yataçlarını yazdırır.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""dizgi"" [ kütük... ]\n\
|
||||
/C Dizgi içeren yataç sayısını say\n\
|
||||
/I Büyük-küçük harfliği yok say\n\
|
||||
/N 1'den başlayan, görüntülenen yataç sayısı\n\
|
||||
/V Dizgi içermeyen yataçları yazdır"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""dizgi"" [kütük...]\n\
|
||||
/V Dizgi içermeyen yataçları yazdır.\n\
|
||||
/C Dizgi içeren yataç sayısını say.\n\
|
||||
/N 1'den başlayan, görüntülenen yataç sayısı.\n\
|
||||
/I Büyük-küçük harfliği yok say.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Böyle dosya yok\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Kütük açılamıyor\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -11,11 +11,13 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: Виведення всіх рядків файлу, які містять рядок.\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""рядок"" [ файл... ]\n\
|
||||
/C Порахувати кількість рядків, які містять рядок\n\
|
||||
/I Не враховувати регістр символів\n\
|
||||
/N Нумерувати рядки, які відображаються (починаючи з 1)\n\
|
||||
/V Виведення рядків, які не містять заданий рядок"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""рядок"" [файл...]\n\
|
||||
/V Виведення рядків, які не містять заданий рядок.\n\
|
||||
/C Порахувати кількість рядків, які містять рядок.\n\
|
||||
/N Нумерувати рядки, які відображаються (починаючи з 1).\n\
|
||||
/I Не враховувати регістр символів.\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: Файл не існує\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: Неможливо відкрити файл\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -5,11 +5,13 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: 输出某文件中包含指定字符串的所有行。\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""字符串"" [ 文件... ]\n\
|
||||
/C 计算包含该字符串的行数\n\
|
||||
/I 忽略大小写\n\
|
||||
/N 从 1 开始为显示的行编号\n\
|
||||
/V 输出不包含该指定字符串的行"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""字符串"" [文件...]\n\
|
||||
/V 输出不包含该指定字符串的行。\n\
|
||||
/C 计算包含该字符串的行数。\n\
|
||||
/N 从 1 开始为显示的行编号。\n\
|
||||
/I 忽略大小写。\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: 没有这个文件\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: 无法打开文件\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -5,11 +5,13 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
|
|||
STRINGTABLE
|
||||
BEGIN
|
||||
IDS_USAGE "FIND: 輸出某檔中包含指定字串的所有行。\n\n\
|
||||
FIND [ /C ] [ /I ] [ /N ] [ /V ] ""字串"" [ 文件... ]\n\
|
||||
/C 計算包含該字串的行數\n\
|
||||
/I 忽略大小寫\n\
|
||||
/N 從 1 開始為顯示的行編號\n\
|
||||
/V 輸出不包含該指定字串的行"
|
||||
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] ""字串"" [文件...]\n\
|
||||
/V 輸出不包含該指定字串的行。\n\
|
||||
/C 計算包含該字串的行數。\n\
|
||||
/N 從 1 開始為顯示的行編號。\n\
|
||||
/I 忽略大小寫。\n\
|
||||
/OFF[LINE] Do not skip files that have the offline attribute set."
|
||||
IDS_NO_SUCH_FILE "FIND: %s: 沒有這個檔\n"
|
||||
IDS_CANNOT_OPEN "FIND: %s: 無法開啟檔\n"
|
||||
IDS_INVALID_SWITCH "FIND: Invalid switch\n"
|
||||
END
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#define IDS_USAGE 1000
|
||||
#define IDS_NO_SUCH_FILE 1001
|
||||
#define IDS_CANNOT_OPEN 1002
|
||||
#define IDS_USAGE 1000
|
||||
#define IDS_NO_SUCH_FILE 1001
|
||||
#define IDS_CANNOT_OPEN 1002
|
||||
#define IDS_INVALID_SWITCH 1003
|
||||
|
|
Loading…
Reference in a new issue