Autor Beitrag
Dhakiyah
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Mo 29.09.08 10:26 
Hallo!
Jetzt habe ich gleich das nächste Problem.

Ich habe also die name.txt Datei.
Dort steht zum Beispiel:
Helmut (tab) Kohl
Angela (tab) Merkel

usw.

Jetzt möchte ich die ersten zwei Buchstaben vom Vornamen und dann den ersten Buchstaben vom Nachnahmen in eine extra *.txt Datei speichern. Und das in Kleinbuchstaben.

Beispiel:
hek
anm

usw.

Gruß

_________________
Es ist soooo flauschig !!!
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.09.08 10:35 
Stichworte: Copy, Pos, AnsiLowerCase. Schau dazu mal in die Hilfe.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19335
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 29.09.08 12:31 
Ein paar kleine Hinweise:
Mit
ausblenden Delphi-Quelltext
1:
Pos(#9, StringList[i])					
bekommst du in der StringList-Zeile i die Position des Tabzeichens.
Mit
ausblenden Delphi-Quelltext
1:
Copy(StringList[i], StartPosition, 2)					
bekommst du die zwei Zeichen ab StartPosition aus der Zeile.
Mit
ausblenden Delphi-Quelltext
1:
LowerCase(Copy(StringList[i], StartPosition, 2))					
sind die beiden Zeichen klein geschrieben.

Die ersten beiden Zeichen sind am einfachsten, da musst du ja nur von Position 1 aus 2 Zeichen kopieren und mit LowerCase in Kleinbuchstaben umwandeln. Dann holst du dir die Position des Tabzeichens und holst ab dem folgenden Zeichen ein Zeichen. Das ganze packst du wieder in die i-te Zeile der Stringlist, und am Ende speicherst du die wieder mit SaveToFile.
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.09.08 12:46 
Wenn Du AnsiLowerCase statt LowerCase benutzt, werden auch Umlaute umgewandelt.
Dhakiyah Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Mo 29.09.08 13:15 
Titel: Hallo...
Die Umlaute habe ich schon ersetzt...

Muss ich die ersten zwei Zeichen in einen anderen String schieben?
So wie ich es gemacht habe geht es nicht...

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
procedure TForm1.Button1Click(Sender: TObject);
var Datei: TStringList;
    i, p: Integer;
    Zeile: string;
    hilf: string;
    zahl: integer;
begin
  Datei := TStringList.Create;
  Datei.LoadFromFile(ExtractFilePath(ParamStr(0))+ 'name.txt');
  for i := 0 to Datei.Count - 1 do
    begin
      Zeile := Datei[i];
      Zeile := Trim (Zeile);
      for p := 1 to Length(Zeile) do
      if Zeile[p] = #9 then Zeile[p] := '.';

      zeile := stringreplace(zeile, 'Ä''Ae', [rfReplaceAll]);
      zeile := stringreplace(zeile, 'ä''ae', [rfReplaceAll]);
      zeile := stringreplace(zeile, 'Ö''Oe', [rfReplaceAll]);
      zeile := stringreplace(zeile, 'ö''oe', [rfReplaceAll]);
      zeile := stringreplace(zeile, 'Ü''Ue', [rfReplaceAll]);
      zeile := stringreplace(zeile, 'ü''ue', [rfReplaceAll]);
      zeile := stringreplace(zeile, 'ß''ss', [rfReplaceAll]);

      hilf := copy(zeile[i],12);

      randomize;
      zahl:= random(succ(9999-1000))+1000;

      Datei[i] := LowerCase(Zeile) + '@mail.de' + #9 + IntToStr(zahl) + hilf;
    end;
  Datei.SaveToFile(ExtractFilePath(ParamStr(0)) + 'name2.txt');
  Datei.Free;
end;

_________________
Es ist soooo flauschig !!!
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.09.08 13:21 
Die Reihenfolge müsste ja so sein:
- String trimmen
- Umlaute wandeln
- die ersten beiden Zeichen des Strings in Variable kopieren
- Tab suchen
- erstes Zeichen hinter dem Tab an Variable anhängen
- Tabs entfernen
- usw.

ausblenden Delphi-Quelltext
1:
hilf := copy(zeile[i],12);					

Das ist so Quatsch, sry. Lass mal den Index weg, Du greifst ja hier auf einen String zu.
ausblenden Delphi-Quelltext
1:
hilf := copy(zeile,12);					
Dhakiyah Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 327
Erhaltene Danke: 5

Windows 7
Delphi XE2
BeitragVerfasst: Mo 29.09.08 13:44 
Titel: Hallo...
ausblenden Delphi-Quelltext
1:
hilf := copy(zeile,12) + copy(zeile, 1 + Pos(#9, Zeile[i]), 2);					


Geht nicht...
Oh man... Das wird nix mehr mit mir und Delphi... :nixweiss:

_________________
Es ist soooo flauschig !!!
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.09.08 13:48 
Versuch mal
ausblenden Delphi-Quelltext
1:
hilf := copy(zeile,12) + copy(zeile, Succ(Pos(#9, Zeile)), 1);