AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi String mit Leerzeichen auf definierte Länge füllen
Thema durchsuchen
Ansicht
Themen-Optionen

String mit Leerzeichen auf definierte Länge füllen

Ein Thema von WIng2005 · begonnen am 4. Okt 2007 · letzter Beitrag vom 4. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#1

String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 11:02
Hallo,

gibt es eine "format-ähnliche" Anweisung mit der ich die länge eines String durch Leerzeichen bestimmen kann?
Hintergrund ist folgender:
Ich habe ein StringGrid und möchte einige Spalten in eine Textdatei speichern.
Damit diese dann tabellenartig aufgebaut ist, müssen alle Elemente einer Spalte die gleiche Länge haben.
Habe bisher ne wilde Schleifenkonstruktion, die nicht ganz arbeiten will.
Arbeite erstmal daran weiter, wäre aber echt dankbar, wenns ne elegantere Lösung gäbe.


MFG
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 11:05
Hallo,

DupeString aus der unit StrUtils macht das gewünschte.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#3

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 11:09
Hallo,

oder was formatähnliches Format

Delphi-Quellcode:
Format('%42s',['Delphi']);
//oder
Format('%-42s',['Delphi']);
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#4

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 11:32
Format....

Danke...

MFG
Steffen
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 11:36
Zitat von Gollum:
Hallo,

DupeString aus der unit StrUtils macht das gewünschte.
Das ist wohl nicht ganz das Gesuchte.
Zitat von Delphi7-Hilfe:
Die Funktion gibt die mehrfache Verkettung eines Strings mit sich selbst zurück. Die Anzahl der Wiederholungen kann angegeben werden.

Unit

StrUtils

Kategorie

String-Verarbeitung

Delphi-Syntax:

function DupeString(const AText: string; ACount: Integer): string;

C++ Syntax:

extern PACKAGE AnsiString __fastcall DupeString(const AnsiString AText, int ACount);

Beschreibung

DupeString gibt einen String zurück, der ACount Wiederholungen des Strings AText enthält. Ein Beispiel:

S := DupeString('Ha', 5);

Diese Anweisung gibt den String 'HaHaHaHaHa' zurück.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#6

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 12:05
Könnte man : s:=Format('%3s',[Grid1.Cells[0,zeile]]) dynamischer gestalten?
Habe versucht, die Formatierungsangabe durch einen String zu ersetzen...mag er nicht.
Idealerweise so:

Delphi-Quellcode:

feld[1]:='3';

s:=Format('%'+feld[1]+'s',[sg1.Cells[0,zeile]]);
Wie gesagt...,mag er nicht -> inkopatible Typen...Ordinalty erforderlich.

MFG
Steffen
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 12:07
Zitat von WIng2005:
Delphi-Quellcode:

feld[1]:='3';

s:=Format('%'+StrToInt(feld[1])+'s',[sg1.Cells[0,zeile]]);
Wie gesagt...,mag er nicht -> inkopatible Typen...Ordinalty erforderlich.

MFG
Steffen
Vielleicht so, siehe oben.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#8

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 12:14
hatte strtoint statt inttostr.... mein Fehler.

MFG

Steffen
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#9

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 12:30
Zitat von WIng2005:
Hallo,

gibt es eine "format-ähnliche" Anweisung mit der ich die länge eines String durch Leerzeichen bestimmen kann?
Hintergrund ist folgender:
Ich habe ein StringGrid und möchte einige Spalten in eine Textdatei speichern.
Damit diese dann tabellenartig aufgebaut ist, müssen alle Elemente einer Spalte die gleiche Länge haben.
Habe bisher ne wilde Schleifenkonstruktion, die nicht ganz arbeiten will.
Arbeite erstmal daran weiter, wäre aber echt dankbar, wenns ne elegantere Lösung gäbe.


MFG
Steffen
while length (mystring) < newlength do insert (' ',mystring,length(mystring+1)); Gruss Reinhard
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: String mit Leerzeichen auf definierte Länge füllen

  Alt 4. Okt 2007, 12:33
Hallo,

kleiner Tipp noch:

Delphi-Quellcode:
var
  FeldBreite: array of Integer;
  iSpalte, iZeile: Integer;
begin
  // ...
  s := Format('%*s', [FeldBreite[iSpalte], Grid.Cells[iSpalte, iZeile]]);
  // ...
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz