LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Il tipo "String" si trova in tutti i linguaggi di programmazione. È primitivo e in 1C ci sono molte funzioni per lavorare con esso. In questo articolo, daremo un'occhiata più da vicino a vari modi di lavorare con i tipi di stringa in 1C 8.3 e 8.2 usando esempi.

Linea

Per convertire una variabile di qualsiasi tipo in una stringa, esiste una funzione con lo stesso nome "String ()". Il parametro di input sarà la variabile stessa, la cui rappresentazione in stringa deve essere ottenuta.

String (False) // restituisce "No"
String (12345) // restituisce "12 345"
String (CurrentDate ()) // 21/07/2017 11:55:36 ″

È possibile convertire non solo tipi primitivi in \u200b\u200buna stringa, ma anche altri, ad esempio elementi di libri di riferimento, documenti.

SocrLP, SocrL, SocrP

I parametri di input di queste funzioni sono una variabile di tipo stringa. Le funzioni rimuovono i caratteri insignificanti (spazi, ritorni a capo, ecc.): Dai lati sinistro e destro, solo dal lato sinistro e solo da destra, rispettivamente.

AbbrLP ("Gli spazi su entrambi i lati verranno rimossi") // "Gli spazi su entrambi i lati verranno rimossi"
Abbreviato ("Gli spazi su entrambi i lati verranno rimossi") // "Gli spazi a sinistra verranno rimossi"
Abbreviazione ("Gli spazi su entrambi i lati verranno rimossi") // "Gli spazi a destra verranno rimossi"

Leo, giusto, mercoledì

Queste funzioni consentono di tagliare parte di una stringa. La funzione "Lion ()" restituirà la parte della stringa dal suo lato sinistro della lunghezza specificata. La funzione "Right ()" è la stessa, ma il ritaglio viene eseguito a destra. La funzione "Med ()" consente di specificare il numero del carattere da cui verrà selezionata la stringa e la sua lunghezza.

Lion ("String variabile", 4) // restituisce "Stro"
Right ("String variabile", 7) // restituisce "variabile"
Mer ("Stringa variabile", 2, 5) // restituisce "troco"

Lunghezza str

La funzione determina il numero di caratteri contenuti nella variabile stringa.

StrLength ("Word") // il risultato dell'esecuzione sarà il numero 5

Trovare

La funzione consente di cercare una parte di una stringa in qualsiasi variabile di stringa. Il valore restituito sarà un numero che mostra la posizione dell'inizio della stringa trovata. Se non viene trovata alcuna corrispondenza, viene restituito zero.

Si noti che le ricerche fanno distinzione tra maiuscole e minuscole. Se la stringa originale contiene più di un'occorrenza della sottostringa di ricerca, la funzione restituirà l'inizio della prima occorrenza.

Trova ("uno, due, uno, due, tre", "due") // la funzione restituirà il numero 6

Linea vuota

L'uso di questa funzione consente di determinare se una stringa è vuota. Caratteri insignificanti come spazio, ritorno a capo e altri vengono ignorati.

EmptyString ("Pupkin Vasily Ivanovich") // la funzione restituirà il valore False
EmptyString ("") // la funzione restituirà True

VReg, NReg, Treg

Queste funzioni sono molto utili per confrontare e convertire variabili di stringa. Breg () restituirà la stringa originale in maiuscolo, HPreg () in minuscolo e TRreg () la formatterà in modo che il primo carattere di ogni singola parola sia in maiuscolo e tutti quelli successivi saranno in minuscolo.

Vreg ("DIRETTORE GENERALE") // valore di ritorno - "DIRETTORE GENERALE"
NReg ("DIRETTORE GENERALE") // valore di ritorno - "direttore generale"
TREG ("DIRETTORE GENERALE") // valore di ritorno - "Direttore generale"

PageReplace

Questa funzione è analoga alla sostituzione negli editor di testo. Ti permette di sostituire un carattere o un insieme di caratteri con un altro nelle variabili stringa.

StrReplace ("rosso, bianco, giallo", ",", ";") // restituirà "rosso; bianca; giallo"

StrNumberStrings

La funzione consente di determinare il numero di righe separate dai ritorni a capo in una variabile di testo.

Il ciclo nell'esempio seguente passerà attraverso tre cerchi perché la funzione RowNumber restituirà 3:

Per ind \u003d 1 di StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Loop
<тело цикла>
Fine ciclo;

StrGetString

Questa funzione funziona con testo multilinea allo stesso modo di quello precedente. Ti permette di ottenere una stringa specifica da una variabile di testo.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // restituirà "String2"

StrNumber of Occurrences

La funzione conta il numero di occorrenze di un carattere o sottostringa nella stringa di ricerca.

Fila di allegati ("a; b; c; d;", \u200b\u200b";") // la funzione restituirà il numero 4

Simbolo e codice simbolo

Queste funzioni consentono di ottenere un carattere dal suo codice Unicode, nonché di determinare questo codice dal carattere stesso.

SymbolCode ("A") // la funzione restituirà il numero 1 040
SymbolCode (1040) // la funzione restituirà "A"

Attività frequenti quando si lavora con le stringhe

Stringhe concatenanti

Per concatenare più stringhe (per eseguire la concatenazione), è sufficiente utilizzare l'operatore addizione.

"Riga 1" + "Riga 2" // il risultato dell'aggiunta di due stringhe sarà "Riga 1 Riga 2"

Tipo di conversione

Per convertire un tipo in una stringa, ad esempio un riferimento a un elemento del dizionario, un numero, ecc., È sufficiente utilizzare la funzione "String ()". Funzioni come "Abbreviation ()" convertiranno anche le variabili in una stringa, ma immediatamente con il troncamento di caratteri insignificanti.

String (1000) // restituirà "1000"

Quando si converte un numero in una stringa, il programma aggiunge automaticamente uno spazio che separa un migliaio. Per evitarlo, puoi usare le seguenti costruzioni:

StrReplace (String (1000), Characters.NPP, "") // restituirà "1000"

String (Format (1000, "CHG \u003d")) // restituirà "1000"

Citazioni in una stringa

Abbastanza spesso, dovrai affrontare la necessità di specificare le virgolette in una variabile stringa. Può essere un testo di richiesta scritto nel configuratore o solo una variabile. Per risolvere questo problema, devi solo impostare due virgolette.

Title \u003d String ("Horns and Hooves LLC" - siamo noi! ") // restituisce" Horns and Hoofs LLC - siamo noi! "

Multilinea, interruzione di riga

Per creare un testo su più righe, è sufficiente aggiungere interruzioni di riga (Symbols.PS).

MultilineText \u003d "Prima riga" + Symbols.PS + "Seconda riga"

Come rimuovere gli spazi

Per rimuovere gli spazi a destra oa sinistra, è possibile utilizzare la funzione "Abbreviation ()" (nonché "Abbreviation ()" e "Abbreviation ()"):

StringNoSpaces \u003d AbbreviatedLP ("Molte lettere") // la funzione restituirà il valore "Molte lettere"

Se, dopo aver convertito un numero in una stringa, è necessario rimuovere spazi non interrotti, utilizzare la seguente costruzione:

StringNoSpaces \u003d StrReplace (String (99999), Characters.NPP, "") // restituirà "99999"

Inoltre, i programmatori usano spesso la seguente costruzione, che consente di rimuovere o sostituire tutti gli spazi di una variabile di testo con un altro carattere:

StringNoSpaces \u003d StrReplace ("welcome", "", "") // restituisce "ciao"

Confrontando le stringhe tra loro

I termini possono essere confrontati con il solito segno di uguale. Il confronto è case sensitive.

"Hello" \u003d "hello" // restituisce False
"Hello" \u003d "Hello" // restituirà True
"Hello" \u003d "Goodbye" // restituirà False

Esistono pochi meccanismi per lavorare con le stringhe nelle query 1C. Innanzitutto, è possibile aggiungere le righe. In secondo luogo, puoi prendere una sottostringa da una stringa. In terzo luogo, le stringhe possono essere confrontate, anche per modello. Questo è probabilmente tutto ciò che puoi fare con le stringhe.

Concatenazione di stringhe

Per aggiungere stringhe in una query, viene utilizzata l'operazione "+". È possibile aggiungere solo linee di lunghezza limitata.

SELEZIONA "Nome:" + Controparti. Nome AS Colonna1 DA Directory. Contraenti AS Controparti DOVE Controparti. Link \u003d & Link

Funzione sottostringa

SUBSTRATO (<Строка>, <НачальнаяПозиция>, <Длина>)

Analogo della funzione Environment () dal modello a oggetti. La funzione Sottostringa () può essere applicata ai dati di un tipo di stringa e consente di selezionare un frammento <Строки> a partire dal numero del carattere <НачальнаяПозиция> (i caratteri nella stringa sono numerati da 1) e la lunghezza <Длина> personaggi. Il risultato del calcolo della funzione ha un tipo di stringa di lunghezza variabile e la lunghezza sarà considerata illimitata se <Строка> ha lunghezza e parametri illimitati <Длина> non è costante o supera 1024.

Se la lunghezza della stringa è inferiore a quella specificata nel secondo parametro, la funzione restituirà una stringa vuota.

Attenzione! Non è consigliabile utilizzare la funzione SUBSTRING () per convertire stringhe di lunghezza illimitata in stringhe di lunghezza limitata. È preferibile invece utilizzare l'operazione di cast EXPRESS ().

Funziona come

Se dobbiamo assicurarci che un attributo stringa soddisfi determinati criteri, lo confrontiamo:

SELEZIONA Controparti. Nome AS Colonna1 DA Directory. Controparti AS Controparti DOVE Controparti. Nome \u003d "Gazprom"

E se volessi un confronto più complicato? Non solo uguaglianza o disuguaglianza, ma come un certo modello? Questo è esattamente ciò per cui è stata creata la funzione LIKE.

LIKE - Operatore per il controllo di una stringa come un motivo. Analogo di LIKE in SQL.

L'operatore LIKE ti consente di confrontare il valore dell'espressione specificata a sinistra di esso con la stringa del modello specificata a destra. Il valore dell'espressione deve essere di tipo stringa. Se il valore dell'espressione corrisponde al modello, l'operatore restituirà VERO, altrimenti sarà FALSO.

I seguenti caratteri nella stringa del modello sono caratteri di servizio e hanno un significato diverso rispetto al carattere di stringa:

  • % (percentuale): una sequenza contenente un numero qualsiasi di caratteri arbitrari;
  • _ (trattino basso): un carattere arbitrario;
  • […] (Uno o più caratteri tra parentesi quadre): qualsiasi singolo carattere elencato tra parentesi quadre. L'enumerazione può contenere intervalli, ad esempio a-z, che indica un carattere arbitrario incluso nell'intervallo, comprese le estremità dell'intervallo;
  • [^…] (Tra parentesi quadre un segno di negazione seguito da uno o più caratteri): qualsiasi singolo carattere diverso da quelli elencati dopo il segno di negazione.

Qualsiasi altro simbolo significa se stesso e non ha alcun significato aggiuntivo. Se è necessario scrivere uno dei caratteri elencati come se stessi, deve essere preceduto da<Спецсимвол>... Lui stesso<Спецсимвол> (qualsiasi carattere adatto) è definito nella stessa istruzione dopo la parola chiave SPECIAL CHARACTER.

Note dallo specchio

18/08/2014 Nuove funzioni per lavorare con le stringhe

Implementato nella versione 8.3.6.1977.

Abbiamo ampliato il set di funzioni per lavorare con le stringhe. Lo abbiamo fatto per offrirti strumenti più avanzati per l'analisi dei dati delle stringhe. Le nuove funzioni saranno utili e utili nei compiti tecnologici di analisi del testo. Nelle attività correlate all'analisi del testo che contiene dati formattati. Può trattarsi dell'analisi di alcuni file ricevuti dall'apparecchiatura o, ad esempio, dell'analisi di un registro tecnologico.

Tutte le azioni che eseguono nuove funzioni che potresti aver eseguito in precedenza. Con l'aiuto di algoritmi più o meno complessi scritti in un linguaggio incorporato. Pertanto, le nuove funzioni non offrono alcuna possibilità fondamentalmente nuova. Tuttavia, possono ridurre la quantità di codice, renderlo più semplice e più comprensibile. E oltre a ciò, ti consentono di accelerare l'esecuzione delle azioni. Perché le funzioni implementate nella piattaforma funzionano, ovviamente, più velocemente di un algoritmo simile scritto in un linguaggio incorporato.

Funzione di formattazione StrPattern ()

Questa funzione sostituisce i parametri in una stringa. La necessità di tale conversione sorge spesso, ad esempio, quando si visualizzano messaggi di avviso. La sintassi per questa funzione è la seguente:

PageTemplate (<Шаблон>, <Значение1-Значение10>)

<Шаблон> è la stringa in cui sostituire le rappresentazioni dei parametri.

<Значение1> , ... <Значение10> - questi sono parametri (massimo - dieci), le cui rappresentazioni devono essere sostituite nella stringa.

Per indicare un punto specifico nel modello in cui si desidera eseguire la sostituzione, è necessario utilizzare marcatori come% 1, ...% 10. Il numero di marcatori utilizzati nel modello e il numero di parametri contenenti valori devono corrispondere.

Ad esempio, il risultato dell'esecuzione di tale affermazione:

ci sarà una linea:

Errore dati alla riga 2 (tipo di data richiesto)

Funzione per lavorare con le stringhe StrCompare ()

Questa funzione confronta due stringhe in modo insensibile al maiuscolo / minuscolo. Ad esempio, in questo modo:

Avresti potuto eseguire la stessa azione prima di utilizzare l'oggetto Confronto di valori:

Tuttavia, l'utilizzo della nuova funzione sembra più semplice. E oltre a ciò, la funzione, a differenza dell'oggetto Confronto di valori, funziona sia nel thin client che nel web client.

Funzioni per lavorare con le stringhe RowStart With (), RREnd With ()

Queste funzioni determinano se una stringa inizia con una sottostringa specificata o termina con una sottostringa specificata. L'algoritmo di queste funzioni non è difficile da implementare nel linguaggio incorporato, ma la loro presenza consente di scrivere codice più pulito e comprensibile. E lavorano più velocemente.

Ad esempio, è conveniente usarli nell'operatore Se una:

Funzioni per lavorare con le stringhe StrSplit (), StrConnect ()

Queste funzioni dividono la stringa in parti in base al delimitatore specificato. O viceversa, combinano più linee in una, inserendo tra loro il separatore selezionato. Sono convenienti per la creazione o l'analisi di log, log tecnologici. Ad esempio, è possibile smontare facilmente una registrazione di un registro tecnologico in parti adatte per ulteriori analisi:

Funzione per lavorare con stringhe StrFind ()

Invece della vecchia funzione Trovare() abbiamo implementato una nuova funzionalità che ha funzionalità aggiuntive:

  • Cerca in diverse direzioni (dall'inizio, dalla fine);
  • Cerca da una posizione specifica;
  • Cerca un'occorrenza con il numero specificato (secondo, terzo, ecc.).

In effetti, duplica le capacità della vecchia funzione. Questo viene fatto al fine di mantenere la compatibilità con i moduli compilati nelle versioni precedenti. Vecchia funzione Trovare() sconsigliato di riutilizzarlo.

Di seguito è riportato un esempio che utilizza le nuove funzionalità di ricerca. Le ricerche all'indietro sono utili quando è necessario l'ultimo pezzo di una stringa formalizzata, come il nome file completo in un URL. E la ricerca da una posizione specificata aiuta nei casi in cui è necessario cercare in un frammento noto e non nell'intera stringa.

Le stringhe in 1C 8.3 nel linguaggio 1c incorporato sono valori di tipo primitivo Linea... I valori di questo tipo contengono una stringa Unicode di lunghezza arbitraria. Le variabili di tipo stringa sono un insieme di caratteri racchiusi tra virgolette.

Esempio 1. Creiamo una variabile stringa con testo.

StringVariable \u003d "Hello world!";

Funzioni per lavorare con le stringhe in 1c 8.3

Questa sezione fornisce le funzioni principali che consentono di modificare le righe in 1c o di analizzare le informazioni in esse contenute.

Lunghezza str

StrLength (<Строка>) ... Restituisce il numero di caratteri contenuti nella stringa passata nel parametro.

Esempio 2. Contiamo il numero di caratteri nella stringa "Hello world!"

String \u003d "Ciao mondo!"; Numero di caratteri \u003d StrLength (String); Rapporto (numero di caratteri);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione del numero di caratteri nella stringa: 11.

Abbreviazione

AbbrL (<Строка>) ... Tronca caratteri insignificanti a sinistra del primo carattere significativo nella stringa.
Personaggi secondari:

  • spazio;
  • spazio non-rottura;
  • tabulazione;
  • ritorno a capo;
  • traduzione di linea;
  • traduzione del modulo (pagina).

Esempio 3. Rimuovere tutti gli spazi dal lato sinistro della linea "mondo!" e allega la linea "Hello".

String \u003d abbreviato ("peace!"); String \u003d "Hello" + String; Rapporto (stringa);

Il risultato dell'esecuzione di questo codice sarà l'output della riga "Hello world!"

Abbreviazione

Abbreviazione (<Строка>) ... Tronca caratteri insignificanti a destra del primo carattere significativo nella stringa.

Esempio 4. Modulo "Ciao" e "Mondo!" la frase "Ciao mondo!"

String \u003d abbreviato ("Hello") + "" + abbreviato ("world!"); Rapporto (stringa);

SokrLP

SocrLP (<Строка>) ... Tronca i caratteri insignificanti a destra del primo carattere significativo nella stringa e taglia anche i caratteri insignificanti a sinistra del primo carattere significativo nella stringa. Questa funzione viene utilizzata più spesso delle due precedenti, in quanto è più versatile.

Esempio 5. Rimuovere i caratteri insignificanti a sinistra ea destra nel nome della controparte.

Counterparty \u003d Directories.Contractors.NaytiPoRequisite ("INN", "0777121211"); CounterpartyObject \u003d Counterparty.GetObject (); CounterpartyObject.Name \u003d AbbreviationLP (CounterpartyObject.Name); CounterpartyObject.Write ();

un leone

Un leone(<Строка>, <ЧислоСимволов>) ... Ottiene i primi caratteri di una stringa, il numero di caratteri è specificato nel parametro Numero di caratteri.

Esempio 6. Lasciate entrare la struttura Dipendente contenere il nome, cognome e patronimico dell'impiegato. Ottieni una stringa con il cognome e le iniziali.

InitialName \u003d Leo (Employee.Name, 1); Patronimico iniziale \u003d Leone (dipendente, patronimico, 1); FullName \u003d Employee.Lastname + "" + InitialName + "." + Patronymic Initial + ".";

Destra

Giusto (<Строка>, <ЧислоСимволов>) ... Ottiene gli ultimi caratteri di una stringa, il numero di caratteri è specificato nel parametro Numero di caratteri. Se il numero di caratteri specificato supera la lunghezza della stringa, viene restituita l'intera stringa.

Esempio 7. Supponi che la fine della variabile stringa contenga la data nel formato "yyyymmdd", prendi una stringa con la data e convertila nel tipo Data.

String \u003d "Data corrente: 20170910"; StringDate \u003d Right (String, 8); Date \u003d Date (StringDate);

mercoledì

Mercoledì (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... Ottiene una sottostringa da una stringa passata come parametro Linea, a partire dal carattere il cui numero è specificato nel parametro StartNumber e la lunghezza passata al parametro Numero di caratteri.La numerazione dei caratteri nella riga inizia da 1. Se il parametro StartNumber viene specificato un valore minore o uguale a zero, quindi il parametro assume il valore 1. Se il parametro Numero di simboli non è specificato, quindi vengono selezionati i caratteri alla fine della riga.

Esempio 8. Lascia che la variabile stringa a partire dalla nona posizione contenga il codice regionale, dovresti ottenerlo e scriverlo in una riga separata.

Linea \u003d "Regione: 99 Mosca"; Region \u003d Wed (Line, 9, 2);

Ricerca

Ricerca (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... Cerca la sottostringa specificata nella stringa, restituisce il numero di posizione del primo carattere della sottostringa trovata. Considera i parametri di questa funzione:

  • Linea... Stringa di origine;
  • SubstringSearch... Ricerca sottostringa;
  • Direzione di ricerca... Specifica la direzione in cui cercare una sottostringa in una stringa. Può assumere valori:
    • Direzione della ricerca. Dall'inizio;
    • Direzione di ricerca.;
  • Posizione iniziale... Specifica la posizione nella stringa da cui inizia la ricerca;
  • Numero di entrate... Specifica il numero di occorrenze della sottostringa desiderata nella stringa originale.

Esempio 9. Nella riga "Ciao mondo!" determinare la posizione dell'ultima occorrenza del simbolo "e".

PositionNumber \u003d StrNayti ("Hello world!", "And", DirectionSearch.End); Rapporto (numero posizione);

Il risultato di questa esecuzione del codice sarà la visualizzazione del numero dell'ultima occorrenza del simbolo "e": 9.

VREG

BReg (<Строка>) ... Converte tutti i caratteri nella stringa specificata in 1s 8 in maiuscolo.

Esempio 10. Converti la stringa "ciao mondo!" maiuscolo.

StringBreg \u003d BReg ("ciao mondo!"); Report (StringVreg);

Il risultato di questa esecuzione del codice sarà la visualizzazione della riga "HELLO WORLD!"

Nreg

HReg (<Строка>) ... Converte tutti i caratteri nella stringa specificata in 1s 8 in minuscolo.

Esempio 11. Convertire la stringa "HELLO WORLD!" in minuscolo.

StringNreg \u003d НReg ("HELLO WORLD!"); Report (StringVreg);

Il risultato dell'esecuzione di questo codice sarà l'output della riga "ciao mondo!"

Treg

Treg (<Строка>) ... Converte una stringa come segue: il primo carattere di ogni parola viene convertito in maiuscolo, i caratteri rimanenti della parola vengono convertiti in minuscolo.

Esempio 12. Scrivi in \u200b\u200bmaiuscolo le prime lettere delle parole nella riga "ciao mondo!"

StringTreg \u003d Treg ("ciao mondo!"); Report (StringTreg);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della riga "Hello World!"

Simbolo

Simbolo(<КодСимвола>) ... Ottiene un carattere dal suo codice Unicod.

Esempio 13. Aggiungi sinistra e destra alla riga "Hello World!" simbolo ★

StringWithStars \u003d Symbol ("9733") + "Hello World!" + Symbol ("9733"); Report (StringWithStars);

Il risultato dell'esecuzione di questo codice sarà l'output della riga "★ Hello World! ★"

SymbolCode

SymbolCode (<Строка>, <НомерСимвола>) ... Ottiene il codice del carattere Unicode dalla stringa specificata nel primo parametro, situata nella posizione specificata nel secondo parametro.

Esempio 14. Scopri il codice dell'ultimo carattere in "Hello World!"

String \u003d "Hello World!"; CharacterCode \u003d CharacterCode (String, StrLength (String)); Rapporto (SymbolCode);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione del codice simbolo "!" - 33.

Linea vuota

Linea vuota (<Строка>) ... Verifica se una stringa contiene solo caratteri insignificanti, ovvero se è vuota.

Esempio 15. Controlla se una stringa composta da tre spazi è vuota.

Empty \u003d EmptyString (""); Rapporto (vuoto);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della parola "Sì" (espressione stringa del valore logico Vero).

PageReplace

PReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) ... Trova tutte le occorrenze della sottostringa di ricerca nella stringa originale e la sostituisce con la sottostringa sostitutiva.

Esempio 16. Nella riga "Hello World!" sostituisci la parola "Pace" con la parola "Amici".

String \u003d StrReplace ("Hello World!", "World", "Friends"); Rapporto (stringa);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della riga "Ciao amici!"

StrNumberStrings

RowNumber (<Строка>) ... Conta il numero di righe in una stringa multilinea. Per passare a una nuova riga in 1s 8, usa il personaggio PS (carattere di avanzamento riga).

Esempio 17. Determina il numero di righe nel testo:
"Prima linea
Seconda linea
Terza riga "

Numero \u003d StrNumberStrings ("Prima riga" + Simboli.PS + "Seconda riga" + Simboli.PS + "Terza riga"); Rapporto (numero);

Il risultato dell'esecuzione di questo codice sarà di visualizzare il numero di righe nel testo: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... Ottiene una stringa in una stringa a più righe in base al suo numero. La numerazione delle righe inizia da 1.

Esempio 18. Ottieni l'ultima riga nel testo:
"Prima linea
Seconda linea
Terza riga "

Testo \u003d "Prima riga" + Simboli.PS + "Seconda riga" + Simboli.PS + "Terza riga"; LastString \u003d StrGetString (Text, StrNumberLines (Text)); Rapporto (LastLine);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione della riga "Terza riga".

StrNumber of Occurrences

StrNumber of Occurrences (<Строка>, <ПодстрокаПоиска>) ... Restituisce il numero di occorrenze della sottostringa specificata in una stringa. La funzione è sensibile al maiuscolo / minuscolo.

Esempio 19. Determina quante volte la lettera "c" appare nella stringa "Lines in 1s 8.3 and 8.2", indipendentemente dal suo caso.

Line \u003d "Lines in 1s 8.3 and 8.2"; Numero di occorrenze \u003d StrNumber of Occurrences (Vreg (String), "S"); Rapporto (numero di occorrenze);

Il risultato dell'esecuzione di questo codice sarà la visualizzazione del numero di occorrenze: 2.

PageStarts With

PageStarts With (<Строка>, <СтрокаПоиска>) ... Verifica se la stringa passata nel primo parametro inizia con la stringa nel secondo parametro.

Esempio 20. Determina se la DCI della controparte selezionata inizia con il numero 1. Lasciare entrare la variabile controparte Contractors.

TIN \u003d Counterparty.INN; StartsUnits \u003d StrStartsWith (INN, "1"); Se BeginsUnits Allora // Your Code EndIf;

PageEnds With

PageEnds With (<Строка>, <СтрокаПоиска>) ... Verifica se la stringa passata nel primo parametro termina con la stringa nel secondo parametro.

Esempio 21. Determina se la TIN della controparte selezionata termina con la cifra 2. Lasciare entrare la variabile controparteviene memorizzato un collegamento a un elemento della directory Contractors.

TIN \u003d Counterparty.INN; Termina con due \u003d Str Termina con (INN, "2"); Se termina con due, allora // Il tuo codice EndIf;

PageSplit

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... Divide una stringa in parti in base ai caratteri delimitatori specificati e scrive le stringhe risultanti in un array. Il primo parametro memorizza la stringa originale, il secondo contiene la stringa contenente il separatore, il terzo specifica se scrivere stringhe vuote nell'array (per impostazione predefinita Vero).

Esempio 22. Supponiamo di avere una stringa contenente numeri separati da ";", ottenere una matrice di numeri dalla stringa.

String \u003d "1; 2; 3"; Array \u003d StrSplit (String, ";"); Per Rd \u003d 0 By Array.Quantity () - 1 array di tentativi di ciclo [Rd] \u003d Number (AbbrLP (Array [Rb])); Matrice di eccezioni [Сч] \u003d 0; Fine dei tentativi Fine del ciclo;

Come risultato dell'esecuzione, verrà ottenuta una matrice con numeri da 1 a 3.

strConnect

StrConnect (<Строки>, <Разделитель>) ... Converte una matrice di stringhe dal primo parametro in una stringa contenente tutti gli elementi della matrice, separati dal delimitatore specificato nel secondo parametro.

Esempio 23. Usando l'array di numeri dell'esempio precedente, ottieni la stringa originale.

Per Ref \u003d 0 Per Array.Quantity () - 1 Loop Array [Ref] \u003d String (Array [Ref]); Fine ciclo; String \u003d StrConnect (Array, ";");

Implementato nella versione 8.3.6.1977.

Abbiamo ampliato il set di funzioni per lavorare con le stringhe. Lo abbiamo fatto per offrirti strumenti più avanzati per l'analisi dei dati delle stringhe. Le nuove funzioni saranno utili e utili nei compiti tecnologici di analisi del testo. Nelle attività correlate all'analisi del testo che contiene dati formattati. Può trattarsi dell'analisi di alcuni file ricevuti dall'apparecchiatura o, ad esempio, dell'analisi di un registro tecnologico.

Tutte le azioni che eseguono nuove funzioni che potresti aver eseguito in precedenza. Con l'aiuto di algoritmi più o meno complessi scritti in un linguaggio incorporato. Pertanto, le nuove funzioni non offrono alcuna possibilità fondamentalmente nuova. Tuttavia, possono ridurre la quantità di codice, renderlo più semplice e più comprensibile. E oltre a ciò, ti consentono di accelerare l'esecuzione delle azioni. Perché le funzioni implementate nella piattaforma funzionano, ovviamente, più velocemente di un algoritmo simile scritto in un linguaggio incorporato.

Funzione di formattazione StrPattern ()

Questa funzione sostituisce i parametri in una stringa. La necessità di tale conversione sorge spesso, ad esempio, quando si visualizzano messaggi di avviso. La sintassi per questa funzione è la seguente:

PageTemplate (<Шаблон>, <Значение1-Значение10>)

<Шаблон> è la stringa in cui sostituire le rappresentazioni dei parametri.

<Значение1> , ... <Значение10> - questi sono parametri (massimo - dieci), le cui rappresentazioni devono essere sostituite nella stringa.

Per indicare un punto specifico nel modello in cui si desidera eseguire la sostituzione, è necessario utilizzare marcatori come% 1, ...% 10. Il numero di marcatori utilizzati nel modello e il numero di parametri contenenti valori devono corrispondere.

Ad esempio, il risultato dell'esecuzione di tale affermazione:

ci sarà una linea:

Errore dati alla riga 2 (tipo di data richiesto)

Funzione per lavorare con le stringhe StrCompare ()

Questa funzione confronta due stringhe in modo insensibile al maiuscolo / minuscolo. Ad esempio, in questo modo:

Avresti potuto eseguire la stessa azione in precedenza utilizzando l'oggetto Confronto valori:

Tuttavia, l'utilizzo della nuova funzione sembra più semplice. Inoltre, la funzione, a differenza dell'oggetto Comparison of Values, funziona sia nel thin client che nel web client.

Funzioni per lavorare con le stringhe RowStart With (), RREnd With ()

Queste funzioni determinano se una stringa inizia con una sottostringa specificata o termina con una sottostringa specificata. L'algoritmo di queste funzioni non è difficile da implementare nel linguaggio incorporato, ma la loro presenza consente di scrivere codice più pulito e comprensibile. E lavorano più velocemente.

Ad esempio, è conveniente usarli in If:

Funzioni per lavorare con le stringhe StrSplit (), StrConnect ()

Queste funzioni dividono la stringa in parti in base al delimitatore specificato. O viceversa, combinano più linee in una, inserendo tra loro il separatore selezionato. Sono convenienti per la creazione o l'analisi di log, log tecnologici. Ad esempio, è possibile smontare facilmente una registrazione di un registro tecnologico in parti adatte per ulteriori analisi:

Funzione per lavorare con stringhe StrFind ()

Invece della vecchia funzione Find (), abbiamo implementato una nuova funzione che ha funzionalità aggiuntive:

  • Cerca in diverse direzioni (dall'inizio, dalla fine);
  • Cerca da una posizione specifica;
  • Cerca un'occorrenza con il numero specificato (secondo, terzo, ecc.).

In effetti, duplica le capacità della vecchia funzione. Questo viene fatto al fine di mantenere la compatibilità con i moduli compilati nelle versioni precedenti. Si consiglia di non utilizzare più la vecchia funzione Find ().

Di seguito è riportato un esempio che utilizza le nuove funzionalità di ricerca. Le ricerche all'indietro sono utili quando è necessario l'ultimo pezzo di una stringa formalizzata, come il nome file completo in un URL. E la ricerca da una posizione specificata aiuta nei casi in cui è necessario cercare in un frammento noto e non nell'intera stringa.

LA CAMPANA

C'è chi legge questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam